Escolar Documentos
Profissional Documentos
Cultura Documentos
ISGEST
LDA_12_2019
Instituto Superior de Gestão Logística e Transportes
Departamento das Engenharias e Tecnologias
Licenciatura em Engenharia Informática
____________________________________
Tomás Pedro
Estudante
Turma: 2D-C2.04
Ano: 2ª
Grupo Nº: 3
Período: Manhã
Paulo da Silva
Msc
Agradecimento
3. Diagrama Entidade-Relacionamento
Diagrama Entidade Relacionamento é a representação gráfica e principal
ferramenta do modelo conceitual. O diagrama facilita ainda a comunicação entre os
integrantes da equipe, pois oferece uma linguagem comum utilizada tanto pelo analista,
responsável por levantar os requisitos, e os desenvolvedores, responsáveis por
implementar aquilo que foi modelado.
Onde:
Um para um: ambas tabelas podem ter somente um registro de cada lado
do relacionamento e não só.
Um para muitos: a tabela de chave primaria contém somente um registro
relacionado a nenhum, a um ou a muitos registros da tabela relacionada, etc.
Muitos para muitos: cada registro em ambas as tabelas pode se relacionar
a nenhum ou a qualquer número de registros na outra tabela, etc.
3.2 Entidade
Entidade é qualquer objeto ou conceito, com interesse em causa e sobre o qual é
necessário guardar informação.
Para cada entidade existem dois tipos de atributos associados que são:
ISGEST_ENG_INFORMÁTICA 7
3.3 As Entidades usado no projeto
As entidades são: Biblioteca, leitor, exemplar, ária, fornecedor e imobiliária.
4. Atributos
Atributos: consiste nas características de uma entidade
5. Domínio
Domínio de um atributo é o conjunto de todos os valores que esse atributo pode
assumir.
6. Chaves
Uma chave é um atributo ou um conjunto de atributos que permite identificar de
modo unívoco os registos (entidade ou ocorrência) de uma tabela.
6.1 Tipos de chaves
Chave primária: é por conseguinte um atributo ou conjunto de atributos que
assume a função de identificar de modo unívoco as entidades ou registos de uma tabela.
Chave externa: é um atributo que é chave primária de uma tabela e que vai
aparecer como atributo de uma outra tabela.
7.1 Sintaxe
ISGEST_ENG_INFORMÁTICA 8
Sintaxe: USE nome_bd;
Esta figura mostra como funciona o nosso diagrama UML, mostra as entidades,
os atributos, e mostra como as tabelas foram relacionadas.
10.Código fonte
-- -----------------------------------------------------
-- Schema biblioteca
-- -----------------------------------------------------
-- -----------------------------------------------------
-- Schema biblioteca
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `biblioteca` DEFAULT CHARACTER SET utf8
;
USE `biblioteca` ;
-- -----------------------------------------------------
-- Table `biblioteca`.`biblioteca`
1
ISGEST_ENG_INFORMÁTICA
0
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `biblioteca`.`biblioteca` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`código` VARCHAR(20) NOT NULL,
`nome` VARCHAR(40) NOT NULL,
`direção` VARCHAR(20) NOT NULL,
`site_web` VARCHAR(20) NOT NULL,
`correio_eletrônico` VARCHAR(30) NOT NULL,
`telefone` INT UNSIGNED NOT NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `id_UNIQUE` (`id` ASC),
UNIQUE INDEX `código_UNIQUE` (`código` ASC),
UNIQUE INDEX `telefone_UNIQUE` (`telefone` ASC),
UNIQUE INDEX `correio_eletrônico_UNIQUE` (`correio_eletrônico` ASC))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `biblioteca`.`leitor`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `biblioteca`.`leitor` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`código` VARCHAR(20) NOT NULL,
`nome` VARCHAR(40) NOT NULL,
`sobre_nome` VARCHAR(40) NOT NULL,
`exemplar_solicitado` VARCHAR(45) NOT NULL,
`data_solicitação` DATETIME NOT NULL,
`data_devolução` DATETIME NOT NULL,
`direção` VARCHAR(40) NOT NULL,
`telefone` INT UNSIGNED NOT NULL,
1
ISGEST_ENG_INFORMÁTICA
1
`correio` VARCHAR(30) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `idleitor_UNIQUE` (`id` ASC),
UNIQUE INDEX `código_UNIQUE` (`código` ASC),
UNIQUE INDEX `telefone_UNIQUE` (`telefone` ASC),
UNIQUE INDEX `correio_UNIQUE` (`correio` ASC))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `biblioteca`.`area`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `biblioteca`.`area` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`nome` VARCHAR(40) NOT NULL,
`local` VARCHAR(30) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `id_UNIQUE` (`id` ASC))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `biblioteca`.`exemplar`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `biblioteca`.`exemplar` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`código` VARCHAR(20) NOT NULL,
`nome` VARCHAR(40) NOT NULL,
`tipo_exemplar` VARCHAR(45) NOT NULL,
`data_chegada` DATETIME NOT NULL,
1
ISGEST_ENG_INFORMÁTICA
2
`biblioteca_id` INT UNSIGNED NOT NULL,
`area_id` INT UNSIGNED NOT NULL,
PRIMARY KEY (`id`, `biblioteca_id`, `area_id`),
UNIQUE INDEX `id_UNIQUE` (`id` ASC),
UNIQUE INDEX `código_UNIQUE` (`código` ASC),
INDEX `fk_exemplar_biblioteca1_idx` (`biblioteca_id` ASC),
INDEX `fk_exemplar_area1_idx` (`area_id` ASC),
CONSTRAINT `fk_exemplar_biblioteca1`
FOREIGN KEY (`biblioteca_id`)
REFERENCES `biblioteca`.`biblioteca` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_exemplar_area1`
FOREIGN KEY (`area_id`)
REFERENCES `biblioteca`.`area` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `biblioteca`.`imobiliaria`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `biblioteca`.`imobiliaria` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`nome` VARCHAR(40) NOT NULL,
`categoria` VARCHAR(30) NOT NULL,
`direção` VARCHAR(20) NOT NULL,
`sitio_web` VARCHAR(30) NOT NULL,
`correio` VARCHAR(30) NOT NULL,
1
ISGEST_ENG_INFORMÁTICA
3
`telefone` INT UNSIGNED NOT NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `id_UNIQUE` (`id` ASC),
UNIQUE INDEX `correio_UNIQUE` (`correio` ASC),
UNIQUE INDEX `telefone_UNIQUE` (`telefone` ASC))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `biblioteca`.`fornecedor`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `biblioteca`.`fornecedor` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`nome` VARCHAR(40) NOT NULL,
`instituição` VARCHAR(30) NOT NULL,
`produto` VARCHAR(30) NOT NULL,
`direção` VARCHAR(20) NOT NULL,
`correio` VARCHAR(30) NOT NULL,
`telefone` INT NOT NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `id_UNIQUE` (`id` ASC),
UNIQUE INDEX `correio_UNIQUE` (`correio` ASC),
UNIQUE INDEX `telefone_UNIQUE` (`telefone` ASC))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `biblioteca`.`biblioteca_has_leitor`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `biblioteca`.`biblioteca_has_leitor` (
1
ISGEST_ENG_INFORMÁTICA
4
`biblioteca_id` INT UNSIGNED NOT NULL,
`leitor_id` INT UNSIGNED NOT NULL,
PRIMARY KEY (`biblioteca_id`, `leitor_id`),
INDEX `fk_biblioteca_has_leitor_leitor1_idx` (`leitor_id` ASC),
INDEX `fk_biblioteca_has_leitor_biblioteca_idx` (`biblioteca_id` ASC),
CONSTRAINT `fk_biblioteca_has_leitor_biblioteca`
FOREIGN KEY (`biblioteca_id`)
REFERENCES `biblioteca`.`biblioteca` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_biblioteca_has_leitor_leitor1`
FOREIGN KEY (`leitor_id`)
REFERENCES `biblioteca`.`leitor` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `biblioteca`.`biblioteca_has_area`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `biblioteca`.`biblioteca_has_area` (
`biblioteca_id` INT UNSIGNED NOT NULL,
`area_id` INT UNSIGNED NOT NULL,
PRIMARY KEY (`biblioteca_id`, `area_id`),
INDEX `fk_biblioteca_has_area_area1_idx` (`area_id` ASC),
INDEX `fk_biblioteca_has_area_biblioteca1_idx` (`biblioteca_id` ASC),
CONSTRAINT `fk_biblioteca_has_area_biblioteca1`
FOREIGN KEY (`biblioteca_id`)
REFERENCES `biblioteca`.`biblioteca` (`id`)
1
ISGEST_ENG_INFORMÁTICA
5
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_biblioteca_has_area_area1`
FOREIGN KEY (`area_id`)
REFERENCES `biblioteca`.`area` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `biblioteca`.`biblioteca_has_fornecedor`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `biblioteca`.`biblioteca_has_fornecedor` (
`biblioteca_id` INT UNSIGNED NOT NULL,
`fornecedor_id` INT UNSIGNED NOT NULL,
PRIMARY KEY (`biblioteca_id`, `fornecedor_id`),
INDEX `fk_biblioteca_has_fornecedor_fornecedor1_idx` (`fornecedor_id` ASC),
INDEX `fk_biblioteca_has_fornecedor_biblioteca1_idx` (`biblioteca_id` ASC),
CONSTRAINT `fk_biblioteca_has_fornecedor_biblioteca1`
FOREIGN KEY (`biblioteca_id`)
REFERENCES `biblioteca`.`biblioteca` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_biblioteca_has_fornecedor_fornecedor1`
FOREIGN KEY (`fornecedor_id`)
REFERENCES `biblioteca`.`fornecedor` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
1
ISGEST_ENG_INFORMÁTICA
6
-- -----------------------------------------------------
-- Table `biblioteca`.`fornecedor_has_imobiliaria`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `biblioteca`.`fornecedor_has_imobiliaria` (
`fornecedor_id` INT UNSIGNED NOT NULL,
`imobiliaria_id` INT UNSIGNED NOT NULL,
PRIMARY KEY (`fornecedor_id`, `imobiliaria_id`),
INDEX `fk_fornecedor_has_imobiliaria_imobiliaria1_idx` (`imobiliaria_id` ASC),
INDEX `fk_fornecedor_has_imobiliaria_fornecedor1_idx` (`fornecedor_id` ASC),
CONSTRAINT `fk_fornecedor_has_imobiliaria_fornecedor1`
FOREIGN KEY (`fornecedor_id`)
REFERENCES `biblioteca`.`fornecedor` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_fornecedor_has_imobiliaria_imobiliaria1`
FOREIGN KEY (`imobiliaria_id`)
REFERENCES `biblioteca`.`imobiliaria` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
1
ISGEST_ENG_INFORMÁTICA
7
11.Desenho de interfaces gráficas da BD Mysql
Esta figura mostra o banco de dados e as tabelas que elas contem, com também
podemos ver as entidades e os seus atributos.
Facilitar nas buscas de dados na tabela e armazenamento dos ficheiros e na
organização do mesmo.
1
ISGEST_ENG_INFORMÁTICA
8
Geralmente, as consultas SQL seguem essa sintaxe:
SELECT coluna_a_selecionar FROM tabela_a_selecionar WHERE
certas_condições_a_aplicar;
1
ISGEST_ENG_INFORMÁTICA
9
Figura 5Campo linha coluna usando WHERE
13.Conclusão
2
ISGEST_ENG_INFORMÁTICA
0
Referências Bibliográficas
Pt.m.wikipedia.org/wiki/Loja
www.ibm.com/support/knowledgecenter/pt-br/SSALK7_7.5.0/com.ibm.mbs.doc/
configur/c_db_relationships.html
2
ISGEST_ENG_INFORMÁTICA
1