Modelo Conceitual, Lgico e Fsico, Modelo Conceitual, Lgico e Fsico,
Entidade-Relacionamento Curso: Tcnico em Informtica (Integrado) Disciplina: Banco de Dados Prof. Abraho Lopes abrahao.lopes@ifrn.edu.br Modelos de banco de dados Modelo de banco de dados uma descrio dos tipos de informaes que esto armazenadas em um banco de dados. Por exemplo, pode informar que o banco armazena Por exemplo, pode informar que o banco armazena informaes sobre produtos e que, para cada produto, so armazenados seu cdigo, preo e descrio. O modelo no informa QUAIS produtos esto armazenados, apenas que tipo de informaes contm. Modelos de banco de dados Para construir um modelo de dados, usa-se uma linguagem de modelagem de dados. Existem linguagens textuais e linguagens grficas. possvel descrever os modelos em diferentes nveis de abstrao e com diferentes objetivos. Cada descrio recebe o nome de esquema de banco de dados. Modelo Conceitual uma descrio de banco de dados de forma independente de implementao num sistema de gerenciamento. Registra QUE dados podem aparecer no banco, mas Registra QUE dados podem aparecer no banco, mas no registra COMO estes dados esto armazenados no SGBD. Modelo Conceitual Exemplo de um modelo conceitual textual: 1) Cadastro de Clientes Dados necessrios: nome completo, tipo de pessoa (fsica ou jurdida), endereo, bairro, cidade, estado, telefone, ou jurdida), endereo, bairro, cidade, estado, telefone, email, nome de contato. 2) Pedido Dados necessrios: cdigo do produto, quantidade, cdigo do cliente, cdigo do vendedor. Exerccio Descreva um modelo conceitual para armazenar os dados de livros. Resposta (provvel): Cadastro de Livros: Titulo, subttulo, autor, editora, nmero de pginas, preo de compra, j foi lido, ISBN, nmero de pginas, ano de publicao, nmero da edio... Modelo Lgico Compreende uma descrio das estruturas que sero armazenadas no banco e que resulta numa representao grfica dos dados de uma maneira lgica, inclusive nomeando os componentes e aes que exercem uns sobre os outros. que exercem uns sobre os outros. Modelo Lgico Exemplo de um modelo lgico preo descrio Produto Tipo de produto do Tipo descrio cdigo cdigo Modelo Lgico O modelo lgico tambm pode ser representado assim: TipoDeProduto (CodTipoProd, DescrTipoProd) Produto (CodProd, DescrProd, PrecoProd, CodTipoProd) CodTipoProd referencia TipoDeProduto Modelo Lgico A tcnica de modelagem mais difundida a abordagem entidade-relacionamento (ER). Nesta tcnica, um modelo conceitual usualmente representado atravs de um diagrama, chamado diagrama entidade-relacionamento (DER). diagrama entidade-relacionamento (DER). Por enquanto iremos estudar apenas o modelo relacional, no qual os dados esto organizados em forma de tabelas. Modelo Fsico uma descrio de um banco de dados no nvel de abstrao visto pelo usurio do SGBD. Assim, esse modelo depende do SGBD que est sendo usado. Aqui so detalhados os componentes da estrutura Aqui so detalhados os componentes da estrutura fsica do banco, como tabelas, campos, tipos de valores, ndices, etc. Nesse estgio estamos prontos para criar o banco de dados propriamente dito, usando o SGBD preferido. Modelo Fsico Exemplo de tabelas em um BD Relacional. Cdigo Descrio 1 Computador 2 Impressora Tipo de produto 2 Impressora Produto Cdigo Descrio Preo CdigoDoTipo 10 Desktop 1.200,00 1 20 Laptop 1.800,00 1 30 Impr. Jato Tinta 300,00 2 40 Impr. Laser 500,00 2 Modelo Fsico Detalhamento de uma tabela Nome do campo Tipo de Dado Tamanho do campo Cdigo do Paciente Numrico 5 dgitos Cadastro de Paciente Nome do Paciente Alfanumrico 50 caracteres Endereo Alfanumrico 50 caracteres Bairro Alfanumrico 40 caracteres Cidade Alfanumrico 40 caracteres Estado Alfanumrico 2 caracteres CEP Alfanumrico 9 caracteres Data de Nascimento Data 10 caracteres Modelo Entidade-Relacionamento Entidade um objeto ou evento do mundo real sobre o qual desejamos manter um registro. Ex.: Aluno, Carro, Produto, Vendedor, etc. Modelo Entidade-Relacionamento Atributo uma propriedade ou caracterstica que descreve uma entidade. Tambm chamado de campo. Ex.: Atributos da entidade ALUNO: nome, data de nascimento, telefone, endereo, etc. Joo Silva Homem 28 anos Vendedor Pedro Santos Homem 53 anos Professor Modelo Entidade-Relacionamento Atributo Chave um atributo que deve possuir um valor nico em todo o conjunto de entidades. Este atributo usado para identificar unicamente um registro da tabela. Ex.: Matrcula, CPF, cdigo, Renavam, Chassi... Diferenciamos um atributo chave dos demais atributos colocando um * (asterisco) antes do nome do atributo ou sublinhando este. Modelo Entidade-Relacionamento Representamos uma entidade nos diagramas E-R atravs de um retngulo. ou Produto preo ou *cdigo descrio preo Produto descrio cdigo Relacionamentos No mundo real as entidades nunca esto sozinhas; normalmente esto associadas entre si. Reconhecer e registrar as associaes entre entidades fornece uma descrio muito mais rica do ambiente. fornece uma descrio muito mais rica do ambiente. Relacionamentos Relacionamento uma relao entre uma, duas ou vrias entidades. Geralmente associamos atravs da ao (verbo) entre as entidades. Ex.: Pai possui Filho Ex.: Pai possui Filho Cliente realiza Pedido Vendedor vende Produto Grau do Relacionamento Grau do relacionamento a quantidade de entidades que esto ligadas ao relacionamento. Relacionamento unrio (grau 1) uma entidade se relaciona com ela mesma. se relaciona com ela mesma. Funcionrio Gerencia Pessoa Casamento Grau do Relacionamento Relacionamento binrio (grau 2) um relacionamento que liga dois tipos diferentes de entidades. o mais comum dos tipos de relacionamentos. Vendedor Produto Vende Aluno Disciplina Cursa Grau do Relacionamento Relacionamento ternrio (grau 3) um relacionamento em que trs entidades esto interligadas por um mesmo relacionamento. Cliente Vendedor Pedido Tipo de Pagamento Grau do Relacionamento Outros graus de relacionamentos tambm podem ser usados (quaternrio, grau 5, etc...). Cardinalidade Cardinalidade (mxima) define a quantidade de ocorrncias de uma entidade que poder estar associada a outra entidade. Ex.: Um vendedor pode vender apenas um tipo de Ex.: Um vendedor pode vender apenas um tipo de produto? Ou dois? Ou trs? Um produto pode ser vendido por apenas um vendedor, ou por todos? Cardinalidade Relacionamento binrio Um-para-Um(1:1) - Indica que uma ocorrncia da entidade A pode se relacionar exclusivamente com uma ocorrncia da entidade B e vice versa. Ex.: Um vendedor ocupa um nico escritrio e um escritrio pode ser ocupado por um nico vendedor. Cardinalidade Relacionamento binrio Um-para-Muitos (1:n) uma ocorrncia da entidade A pode se relacionar com vrias ocorrncias da entidade B, porm o inverso no permitido. Ex. Um vendedor atende muitos clientes. Porm, cada cliente tem um vendedor especfico. n 1 Cardinalidade Rel. binrio Muitos-para-Muitos (n:m) uma ocorrncia da entidade A pode se relacionar com muitas ocorrncias da unidade B e vice versa. Ex.: Um vendedor atende muitos clientes, e um Ex.: Um vendedor atende muitos clientes, e um cliente pode ser atendido por diversos vendedores. Cardinalidade Na prtica, o relacionamento n:m dividido em duas relaes 1:n e uma nova entidade criada para representar o relacionamento. n n Cardinalidade Cardinalidade (mnima) define o nmero mnimo de ocorrncias de entidade que precisam estar associadas a outra entidade (em carter obrigatrio). S consideramos duas cardinalidades mnimas: 0 e 1. Escreve-se: 0..1 1..1 0..n 1..n 0..* 1..* etc... Cardinalidade Ex.: Um vendedor ocupa um nico escritrio, porm obrigatrio que ele tenha um escritrio. (L-se no mnimo Um, no mximo Um). Um escritrio pode ser ocupado por um nico vendedor, Um escritrio pode ser ocupado por um nico vendedor, porm pode ser que a sala esteja vazia, ainda sem vendedor. (L-se no minimo Zero, no mximo Um). 0..1 1..1 Formas de representao Existe uma variedade enorme de representaes grficas para o modelo entidade relacionamento. CLSSICO P DE GALINHA Formas de representao COLUNAS CONECTADAS E diversas outras. Escolha a forma que preferir. UML MySQL Workbench Ferramenta gratuita para modelagem e manipulao de bancos de dados MySQL (e compatveis). MySQL Workbench Usaremos a ferramenta de modelagem ER para criar nosso primeiro projeto. Duplo clique em Add Diagram para abrir a tela de edio de para abrir a tela de edio de diagramas. As setas na cor cinza abrem ou fecham outras opes que no usaremos por enquanto. MySQL Workbench O ambiente de modelagem de diagramas. MySQL Workbench As ferramentas SELEO INSERIR CAMADA / REA MOVER TELA APAGAR INSERIR NOTA DE TEXTO INSERIR IMAGEM MySQL Workbench As ferramentas NOVA TABELA REL. 1:1 SEM IDENTIFICAO REL 1:N SEM IDENTIFICAO REL 1:1 IDENTIFICADO NOVA VISO GRUPO DE ROTINAS REL 1:1 IDENTIFICADO REL 1:N IDENTIFICADO REL N:M IDENTIFICADO REL USANDO COLS. EXISTENTES MySQL Workbench As ferramentas Novo, Abrir, Salvar, Salvar Como, Desfazer, Refazer, Novo, Abrir, Salvar, Salvar Como, Desfazer, Refazer, Exibir grade, Encaixar na grade MySQL Workbench As ferramentas Busca de objetos (texto), abrir console, ocultar barra lateral Visualizao/ navegao (mova o navegao (mova o quadro) Zoom Exerccios Crie o modelo conceitual para um sistema de biblioteca com as seguintes entidades: Usurio, Livro, Autor, Editora. Crie um modelo lgico para os dados da questo Crie um modelo lgico para os dados da questo anterior. Usando o MySQL Workbench. Referncias ALVES, W. P. Fundamentos de Bancos de Dados. rica, 2004 GILLENSON, Mark L. Fundamentos de Sistemas de Gerncia de Banco de Dados. LTC, 2006. HEUSER, Carlos Alberto. Projeto de Banco de Dados. Sagra Luzzatto, 2004. TEOREY, Toby J. Projeto e modelagem de banco de dados. Elsevier, 2007.