BCD29008 Banco de dados

Documentos relacionados
Modelo Lógico: Tabelas, Chaves Primárias e Estrangeiras

AULA 1 INTRODUÇÃO A BANCO DE DADOS E VISÃO GERAL DO SQL CONCEITUANDO BANCO DE DADOS MODELO RELACIONAL

Fundamentos de Bancos de Dados 3 a Prova Caderno de Questões

Modelo Entidade-Relacionamento. José Antônio da Cunha CEFET-RN

Banco de Dados I 2007 Módulo II: Modelagem Entidade- Relacionamento versus Relacional. (Aula 1) Clodis Boscarioli

Criando Restrições em Tabelas

Disciplina de Banco de Dados Parte V

Banco de Dados I. Prof. Edson Thizon

LINGUAGEM SQL Linguagem usada em SGBD para: Definir estrutura de dados; Modificar dados em um banco de dados; Especificar restrições de segurança; Rea

Modelo Entidade Relacionamento (MER) Professor : Esp. Hiarly Alves

Banco de Dados. Modelo Entidade - Relacionamento. João Eduardo Ferreira Osvaldo Kotaro Takai jef@ime.usp.br DCC-IME-USP

CRIAÇÃO DE TABELAS NO ACCESS. Criação de Tabelas no Access

Prova de Fundamentos de Bancos de Dados 1 a Prova

BANCO DE DADOS I Atualizado em 13 de maio de 2009

ADMINISTRAÇÃO DE BANCOS DE DADOS MÓDULO 8

BANCO DE DADOS. Vinícius Pádua

MODELO RELACIONAL E RESTRIÇÕES DE INTEGRIDADE

Banco de Dados. Sistemas de Informação Engenharia de Produção

Introdução de XML. Dados da Web. Gerência de Dados da Web. A Web representa, nos dias de hoje, um repositório universal de dados, onde:

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

Tecnologia da Informação

Considere as Relações Funcionários (F) e Dependentes (D), com o seguinte esquema simplificado:

Modelo Relacional Normalização Diagramas E-R e Tabelas Originadas

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Aula 02 Modelagem de Dados. Banco de Dados. Aula 02 Modelagem de Dados. Superior /2011 Redes Computadores - Disciplina: Banco de Dados -

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

Seleção, Projeção, Produto Cartesiano e Junção

Disciplina: Unidade III: Prof.: Período:

Page 1. Prof. Constantino Jacob

Banco de dados 1. Linguagem SQL DDL e DML. Professor: Victor Hugo L. Lopes

BANCO DE DADOS I AULA 2. Willamys Araújo willamysaraujo7@gmail.com

Modelo de Dados Relacional Restrições de um Banco de Dados Relacional

SQL DDL. Frederico D. Bortoloti

MDS II Aula 04. Concepção Requisitos Diagrama de Casos de Uso (Use Cases)

Banco de Dados. Colégio Singular. Curso Profissionalizante: Informática

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

Oracle Database 10g: Fundamentos de SQL e PL/SQL

Tópicos Avançados em Banco de Dados Dependências sobre regime e controle de objetos em Banco de Dados. Prof. Hugo Souza

Comandos de Manipulação

Assessoria Técnica de Tecnologia da Informação - ATTI. Projeto de Informatização da. Secretaria Municipal de Saúde do. Município de São Paulo

Roteiro. Mapeamento dos Modelos ER e EER. Processo de Projeto de Banco de Dados. BCC321 - Banco de Dados I. Ementa. Posicionamento

Comandos DDL. id_modulo = id_m odulo

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

Capitulo 2. Prof.º Espc. Fábio Margarito Martins de Barros - Tecnologia de banco de dados

Graphing Basic no Excel 2007

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável.

Linguagem SQL Sub-linguagem DDL

Desenvolvimento de Software

Gerenciamento de um Sistema de

Núcleo de Pós Graduação Pitágoras

Curso de Aprendizado Industrial Desenvolvedor WEB. Disciplina: Banco de Dados Professora: Cheli Mendes Costa Modelo de Dados

CICLO DE VIDA DE UM BD

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES

Conceitos básicos. Aplicações de banco de dados. Conceitos básicos (cont.) Dado: Um fato, alguma coisa sobre a qual uma inferência é baseada.

1. Domínio dos Atributos

MODELAGENS. Modelagem Estratégica

Banco de Dados I Unidade 3: Projeto de BD Relacional. Cláudio Baptista

Análise de Sistemas 3º Bimestre (material 2)

UNIVERSIDADE FEDERAL DO MARANHÃO - UFMA. Banco de Dados II. Integridade. Carlos Eduardo Portela Serra de Castro

Banco de Dados Transformação Modelo Conceitual para Lógico Relacional. Prof. Juliano Lucas Gonçalves

4.6. SQL - Structured Query Language

Para entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real:

Modelo de Dados. Modelos Conceituais

Revisão Diagrama de Caso de Uso. Rodolfo Adamshuk Silva 30/08/2013

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

O que é um banco de dados? Banco de Dados. Banco de dados

Programação Orientada a Objetos

INFORMÁTICA PARA GESTÃO II Curso Superior de Gestão de Marketing

MODELO RELACIONAL - UFMA

Inteligência Artificial

Banco de Dados. Arquitetura e Terminologia. Prof. Walteno Martins Parreira Jr waltenomartins@yahoo.

Banco de Dados I. Introdução Conceitos

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

Modelo de Dados. Modelo para organização dos dados de um BD

Orientação a Objetos

Prova de Fundamentos de Bancos de Dados 2003/2 Prova 1

MODELAGEM DE DADOS MODELAGEM DE DADOS. rafaeldiasribeiro.com.br 04/08/2012. Aula 7. Prof. Rafael Dias Ribeiro.

Modelo Comportamental

Lógica de Programação. Profas. Simone Campos Camargo e Janete Ferreira Biazotto

Engenharia de Software II

Sérgio Luisir Díscola Junior

Objetivo do Portal da Gestão Escolar

SQL - Criação de Tabelas

Probabilidade. Luiz Carlos Terra

SQL. Definição do Esquema da Base de Dados. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

Planejamento - 2. Definição de atividades Sequenciamento das atividades. Mauricio Lyra, PMP

Database and Applications. Criação, inserção de dados PHP+MySQL

Regras de Integridade. Profa. Késsia Marchi

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA DEPARTAMENTO DE INFORMÁTICA APLICADA INF INTRODUÇÃO À INFORMÁTICA

Esquema da Relação. Modelo Relacional. Instância da Relação. Exemplo. Uma base de dados é uma colecção de uma ou mais relações com nomes distintos

PHP INTEGRAÇÃO COM MYSQL PARTE 1

BANCO DE DADOS CONCEITOS BÁSICOS

Aula VI -MODELO RELACIONAL

MODELAGEM DE DADOS. Banco de Dados I. O uso da análise e do projeto Orientados a Objetos atenuou a separação! Unidade I

Introdução a Banco de Dados. INTRODUÇÃO

Transcrição:

BCD29008 Banco de dados Modelo ER & Modelo Relacional Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/bcd 18 de agosto de 2017 1/21

Modelagem: criar uma entidade ou relacionamento? Faça um ER para registrar os produtos comprados por cada cliente 2/21

Modelagem: criar uma entidade ou relacionamento? Faça um ER para registrar os produtos comprados por cada cliente Pessoa Compra Produto João João, Água Água Ana Ana, Água Salgado Pedro Pedro, Salgado Pedro, Água 2/21

Modelagem: criar uma entidade ou relacionamento? Faça um ER para registrar os produtos comprados por cada cliente Pessoa Compra Produto João João, Água Água Ana Ana, Água Salgado Pedro Pedro, Salgado Pedro, Água A modelagem acima atenderia os casos abaixo? Amanhã João gostaria de comprar um salgado Amanhã João gostaria de comprar uma água 2/21

Modelagem: criar uma entidade ou relacionamento? Faça um ER para registrar os produtos comprados por cada cliente Pessoa Compra Produto João João, Água Água Ana Ana, Água Salgado Pedro Pedro, Salgado Pedro, Água A modelagem acima atenderia os casos abaixo? Não! Amanhã João gostaria de comprar um salgado Amanhã João gostaria de comprar uma água 2/21

Modelagem: criar uma entidade ou relacionamento? Faça um ER para registrar os produtos comprados por cada cliente Amanhã João gostaria de comprar um salgado Amanhã João gostaria de comprar uma água João Água 2017-07-14 Ana Água 2017-07-14 Pedro Salgado 2017-07-14 João Salgado 2017-07-15 João Água 2017-07-15 3/21

Modelagem: criar uma entidade ou relacionamento? Faça um ER para registrar os produtos comprados por cada cliente João tomou sua água e gostaria de comprar outra A modelagem atual permitiria João fazer duas compras distintas de um mesmo produto em um mesmo dia? João Água 2017-07-14 Ana Água 2017-07-14 Pedro Salgado 2017-07-14 João Salgado 2017-07-15 João Água 2017-07-15 3/21

Modelagem: criar uma entidade ou relacionamento? Faça um ER para registrar os produtos comprados por cada cliente João tomou sua água e gostaria de comprar outra A modelagem atual permitiria João fazer duas compras distintas de um mesmo produto em um mesmo dia? Não! João Água 2017-07-14 Ana Água 2017-07-14 Pedro Salgado 2017-07-14 João Salgado 2017-07-15 João Água 2017-07-15 3/21

Modelagem: criar uma entidade ou relacionamento? Faça um ER para registrar os produtos comprados por cada cliente João tomou sua água e gostaria de comprar outra A modelagem atual permitiria João fazer duas compras distintas de um mesmo produto em um mesmo dia? Nota Algumas abordagens ER não permitem usar atributos identificadores em relacionamentos n:n 3/21

Modelagem: criar uma entidade ou relacionamento? Faça um ER para registrar os produtos comprados por cada cliente Uma ou mais compras por par (pessoa, produto) id data pessoa produto 1 2017-07-14 idjoão idágua 2 2017-07-14 idjoão idágua 3 2017-07-14 idjoão idsalgado 4 2017-07-14 idpedro idsalgado 4/21

Diferentes modelos ER podem ser equivalentes Podem gerar o mesmo esquema de banco de dados Todo relacionamento muitos-para-muitos (n:n) pode ser transformado em entidade Algumas abordagens ER excluem o uso de relacionamentos n:n, outras excluem apenas relacionamentos n:n com atributos 5/21

Modelagem: atributo versus entidade relacionada Se não houver qualquer objeto relacionado com a Cor, então essa poderia ser modelada como atributo Se fosse necessário registrar o fabricante da tinta da referida cor, datas de início e fim de uso da cor, etc. então optaria por modelar como entidade 6/21

Modelagem: atributo versus entidade relacionada Se não houver qualquer objeto relacionado com a Cor, então essa poderia ser modelada como atributo Se fosse necessário registrar o fabricante da tinta da referida cor, datas de início e fim de uso da cor, etc. então optaria por modelar como entidade Deseja-se armazenar os telefones dos alunos. Qual abordagem usar? Telefone seria um atributo de Aluno ou Telefone seria uma entidade? 6/21

Modelagem: atributo versus especialização A especialização deve ser usada quando sabe-se que os objetos possuem propriedades particulares 7/21

Modelagem: atributo versus especialização A especialização deve ser usada quando sabe-se que os objetos possuem propriedades particulares É necessário representar o fato que os funcionários são divididos entre homens e mulheres. Qual abordagem usar? 7/21

Leitura recomendada Heuser, C. A. Projeto de banco de dados 6a. Edição - Editora Bookman, 2009 Leia as seguintes seções do capítulo 3 (página 72) 3.1, 3.2 e 3.3 8/21

Modelo relacional 9/21

Esquema e instância de banco de dados Esquema de banco de dados Projeto lógico do banco de dados Fazendo analogia com a linguagem Java, o esquema seria equivalente a declaração de uma classe Instância de banco de dados Situação dos dados em um banco de dados em um determinado instante no tempo Fazendo analogia com a linguagem Java, a instância seria equivalente a um objeto, que nada mais que é uma instância da classe 9/21

Tabela ou Relação Em um banco de dados relacional os dados estão organizados na forma de tabelas, também chamadas de relações Tabela é um conjunto não ordenado de linhas (tuplas). Cada linha é composta por uma série de campos (colunas ou atributos) 10/21

Chaves Chave em um banco de dados relacional tem por objetivo identificar linhas e estabelecer relações entre linhas de diferentes tabelas Não trata-se de um índice para tornar o acesso mais rápido. Trata-se apenas de uma restrição de integridade Chave primária (primary key PK) Coluna ou combinação de colunas cujos valores distinguem uma linha das demais dentro de uma relação Chave estrangeira (foreign key FK) Coluna ou combinação de colunas cujo valores aparecerem necessariamente na chave primária de uma outra tabela O mecanismo que permite a implementação de relacionamentos em banco de dados relacionais 11/21

Chaves 11/21

Chave estrangeira Uma relação r 1 pode incluir entre seus atributos a chave primária de uma outra relação, por exemplo, r 2 Esse atributo é então chamado de chave estrangeira de r 1, referenciando r 2 r 1 é chamada de relação referenciadora da dependência da chave estrangeira r 2 é chamada de relação referenciada da chave estrangeira Restrição de integridade referencial Em qualquer instância de banco de dados, dada qualquer tupla t a de r 1, deverá haver alguma tupla t b em r 2, tal que o valor do atributo da chave estrangeira de t a seja o mesmo valor da chave primária de t b 12/21

Restrições impostas por chave estrangeira Inclusão de linha na tabela que contém chave estrangeira O valor a ser colocado na chave estrangeira deve obrigatoriamente aparecer na coluna chave primária da tabela referenciada Alteração do valor da chave estrangeira O novo valor deve obrigatoriamente aparecer na coluna chave primária da tabela referenciada Exclusão de uma linha da relação referenciada da chave estrangeira Deve ser garantido que na coluna chave estrangeira da relação referenciadora não apareça o valor que está sendo excluído da chave primária da tabela referenciada Alteração do valor da chave primária referenciada pela chave estrangeira Na chave estrangeira da relação referenciadora não pode aparecer o valor antigo da chave primária que está sendo alterada 13/21

Restrições impostas por chave estrangeira Na tabela Aluno posso inserir um aluno com o valor 321 em idcurso? Na tabela Aluno posso alterar o valor de idcurso do aluno Juca para 122? Na tabela Curso posso excluir o curso 230? Na tabela Curso posso alterar o valor de idcurso 290 para 207? 14/21

Restrições impostas por chave estrangeira Na tabela Aluno posso inserir um aluno com o valor 321 em idcurso? Não! Na tabela Aluno posso alterar o valor de idcurso do aluno Juca para 122? Sim! Na tabela Curso posso excluir o curso 230? Sim! Na tabela Curso posso alterar o valor de idcurso 290 para 207? Não! 14/21

Domínios e valores vazios Domínio do campo é o conjunto de valores que são permitidos na referida coluna em uma tabela Cadeia de caracteres, inteiro, data,... Ao criar um campo em uma tabela deve-se especificar seu domínio e se a mesma poderá aceitar valores nulos (NULL) Colunas obrigatórias não permitem valores nulos Colunas opcionais permitem valores nulos Colunas que compõem chaves primárias são colunas obrigatórias, porém tal exigência não é necessária para chave estrangeira 15/21

Domínios e valores vazios Domínio do campo é o conjunto de valores que são permitidos na referida coluna em uma tabela Cadeia de caracteres, inteiro, data,... Ao criar um campo em uma tabela deve-se especificar seu domínio e se a mesma poderá aceitar valores nulos (NULL) Colunas obrigatórias não permitem valores nulos Colunas opcionais permitem valores nulos Colunas que compõem chaves primárias são colunas obrigatórias, porém tal exigência não é necessária para chave estrangeira Restrições de integridade de domínio SGBD garantem automaticamente a integridade de domínio, de valores nulos, integridade de chave e integridade referencial. O desenvolvedor de aplicação não precisa se preocupar em fazer tais verificações 15/21

Representação do esquema de banco de dados relacional Diagrama representação gráfica Existem diferentes tipos de notações para representação gráfica de um esquema de banco de dados (depende da ferramenta) Representação acima foi feita com o MySQL Workbench Notação UML para relacionamento Notação MySQL Workbench simplificada para tabelas 16/21

Representação do esquema de banco de dados relacional Representação textual Linguagem SQL é a linguagem padrão 1 CREATE TABLE `Aluno` ( 2 `idaluno` INT NOT NULL, 3 `Nome` VARCHAR(45) NULL, 4 `Curso_idCurso` INT NOT NULL, 5 PRIMARY KEY (`idaluno`), 6 CONSTRAINT `fk_aluno_curso` 7 FOREIGN KEY (`Curso_idCurso`) 8 REFERENCES `Curso` (`idcurso`)); Representação resumida 9 Aluno (idaluno, Nome, idcurso) 10 idcurso referencia Curso 11 12 Curso (idcurso, Nome) 17/21

Linguagem de consulta relacional Linguagem de consulta permite ao usuário solicitar informações do banco de dados e geralmente estão em um nível mais alto de abstração do que as tradicionais linguagens de programação Álgebra relacional Structured Query Language SQL 18/21

Álgebra relacional Conjunto de operações aplicado sobre um ou mais conjuntos e que produz um novo conjunto como resultado Semelhantes com operações algébricas normais, como adição, subtração ou multiplicação 19/21

Álgebra relacional Símbolo Nome Exemplo Resultado σ Seleção σ salario>500 (funcionario) Todas tuplas que satisfaçam o predicado Π Projeção Π nome,salario (funcionario) Os atributos nome e salário de todas as tuplas Junção professor curso Todas pares de tuplas que possuem o mesmo valor para todos atributos de mesmo nome Produto cartesiano professor curso Todas pares de tuplas independente de terem os mesmos valores nos atributos comuns 19/21

Exercícios Henry F.; Sudarshan Silberschatz, Abraham; Korth. Sistemas de banco de dados. 6a. Edição - Editora Campus, 2012 Exercícios capítulo 2 (página 34) Exercícios: 2.1, 2.2, 2.3, 2.4, 2.9, 2.10, 2.11 e 2.14 20/21

Aulas baseadas em Henry F.; Sudarshan Silberschatz, Abraham; Korth. Sistemas de banco de dados. 6a. Edição - Editora Campus, 2012 Heuser, C. A. Projeto de banco de dados 6a. Edição - Editora Bookman, 2009 Sullivan, D. G. Computer Science Harvard University 21/21