INTRODUÇÃO (MODELAGEM DE BANCO DE
Definição de modelo Parece trivial o que pode ser um modelo, mas vamos nos esquecer da informática por um momento, para assim explorarmos outras possibilidades interessantes. A seguir uma das muitas definições que modelo pode ter, e que serve particularmente aos casos que iremos enquadrar: Modelo é a representação abstrata e simplificada de um sistema real, com a qual se pode explicar ou testar o seu comportamento, em seu todo ou em partes. * Exemplo do anúncio de apartamento no jornal (planta baixa). 2
Definição de modelo Dados são os fatos em sua forma primária, como por exemplo um nome de um empregado e o número de horas trabalhadas em uma semana, números de peças em estoque ou pedidos de vendas. (Stair, 1996). Quando estes fatos estão organizados ou arranjados de uma maneira significativa, eles se tornam uma informação. Informação, portanto, é um conjunto de fatos organizados de tal forma que adquirem um valor adicional além do valor do fato em si. Por exemplo, um certo gerente pode achar que o conhecimento do total de vendas mensais é mais adequado ao seu propósito, ou seja, tem mais valor, do que as vendas de cada representante de vendas individualmente. (Stair, 1996) 3
Definição de modelo Banco de dados: É uma coleção de dados relacionados. Dados, por sua vez são uma coleção de fatos que podem ser guardados e que tem um significado implícito... (Navathe, 1994) SGBD: é uma coleção de programas que permite ao usuário criar e manter um banco de dados. (Navathe, 1994) 4
O Modelo Conceitual de Dados A Abordagem Entidade-Relacionamento (E-R) Em março de 76, Peter P. Chen publicou o trabalho The Entity- Relationship Model: Toward the unified view of data, onde definia uma possível abordagem ao processo de modelagem dos dados. Passou a ser considerado o referencial definitivo. Conceitos Básicos do Modelo E-R Utiliza-se basicamente um retângulo para representar entidades, um losango para relacionamentos e balões para os atributos. 5
O Modelo Conceitual de Dados A proposta perdura até hoje devido ao preceito básico da formalização do óbvio. Por isso o modelo é ao mesmo tempo objetivo, flexível e adaptável. (Sua maior qualidade) A Lei do Mundo: O mundo está cheio de coisas (entidades no original) que possuem características próprias e que se relacionam entre si. 6
O Modelo Conceitual de Dados Chen enunciou o que todos já sabiam e faziam: Observamos, manipulamos, reproduzimos ou simulamos coisas, seus relacionamentos e características e, portanto, assim devemos representálas!. Conceito Básico na Lei do Mundo Conjunto de objetos, ou elementos individualizados Individualização de objetos ou elementos Características próprias Abordagem do Modelo E-R Entidades Instâncias ou Ocorrências Atributos Inter-relacionamento de objetos Relacionamentos 7
Entidades Conjunto de objetos da realidade modelada sobre os quais deseja-se manter informações no banco de dados. Identificação das Entidades Devemos procurar reconhecer objetos, ou elementos individualizados, através da observação de cinco grandes grupos de elementos: 8
Entidades Conjunto (entidade) Meio de transporte Animal Utensílio doméstico Utensílio escolar Equipamento Pertence pessoal Objetos que pertencem ao conjunto Avião, automóvel, bicicleta Cachorro, cavalo, elefante Garrafa, mesa, telefone, panela Livro, lápis, borracha, quadro, disquete Computador, máquina de escrever, calculadora Chave, carteira, agenda, camisas 9
Relacionamentos Conjunto de associações entre ocorrências de entidades. Identificação dos Relacionamentos Relacionamento entre objetos de diferentes tipos Exemplo da pessoa e do carro: Eduardo tem um jipe amarelo. A- Identificar os objetos envolvidos: Pessoa e Carro B- Caracterizar os objetos: Pessoa (Nome, CPF, nascimento) e Carro (Marca, modelo, cor, ano de fabricação, placa) C- Representar os objetos: fazer os desenhos D- Identificar o relacionamento entre os objetos: Pessoa é proprietária de Carro 10
Relacionamentos E- Caracterizar o relacionamento entre os objetos: Nem toda pessoa é proprietária de um carro Um carro pode pertencer a uma pessoa ou não Algumas pessoas têm mais de um carro Se um carro pertence a uma pessoa ele não pertence a mais ninguém F- Representar o relacionamento 11
Caracterização dos Relacionamentos Sua caracterização deverá ser feita baseada no atendimento de alguns requisitos: Cardinalidade (ou grau) do relacionamento Pode ser 1:1 (Um para Um), 1:N (Um para Muitos) ou M:N (Muitos para Muitos - deverá ser desfeito no modelo lógico) Número de elementos que participam do relacionamento Relacionamentos geralmente se dão entre duas entidades, pois relacionamentos ternários ou de maiores graus não são muitos freqüentes. Condição de participação dos elementos no relacionamento Condição de estabelecimento do relacionamento 12
Atributos Dado que é associado a cada ocorrência de uma entidade ou de um relacionamento. O Papel dos Atributos O atributo é uma característica própria de cada um dos objetos em um ambiente. Essas características devem ser comuns a todos os objetos, ou elementos individualizados, pertencentes a um mesmo conjunto. 2.5.2 Atributos Identificados de Entidades Conjunto de um (identificador simples) ou mais (identificador composto) atributos cujos valores servem para distinguir uma ocorrência da entidade das demais ocorrências da mesma entidade. Identificado por um círculo preenchido. 13
Atributos Relacionamentos Identificadores (Entidade Fraca) A entidade fraca deriva do fato de ela somente existir quando relacionada a uma outra entidade. Sua representação se dá por uma linha mais grossa no relacionamento com a entidade forte. Exemplo: Empregado e dependente. 14
Atributos Identificadores de Relacionamentos Em alguns casos certos relacionamentos podem ocorrer várias vezes e podem ser diferenciados. Exemplo: Médico consulta paciente. 15
O Modelo Relacional de Dados Evolução dos Modelos Lógicos de Dados O modelo lógico é uma ferramenta para descrição de estruturas de dados em uma forma passível de ser processada por um SGBD. É um nível de abstração mais baixo que um Modelo Conceitual, mas mais alto que um Modelo Físico, pois não considera aspectos físicos de armazenamento, acesso e desempenho. 3.2 Histórico do Modelo Relacional O Modelo Relacional foi introduzido por Codd em 1970, como auxílio para o desenvolvimento de banco de dados relacionais: Forte base teórica, fundamentada na teoria dos conjuntos; Conceitos simples: relações, atributos, tuplas e domínios; Base para a maioria dos SGBDs que dominam o mercado. 16
Os Principais Elementos de um BD Relacional Tabelas Uma tabela (ou relação) é um conjunto não ordenado de linhas (ou tuplas). Um exemplo de tabela (a seguir) que armazena dados de empregados de uma organização. CodigoEmp Nome CodigoDepto CategFuncional E5 Souza D1 C5 E3 Santos D2 C5 E2 Silva D1 C2 E1 Soares D1-17
Os Principais Elementos de um BD Relacional Tabelas Cada linha é composta por uma série de campos (valor de atributo). Neste exemplo cada linha é referente a um empregado da companhia e cada campo é uma informação referente a este empregado (código, nome, departamento, categoria funcional). Cada campo é identificado por um nome de campo (nome de atributo), que na tabela representam o cabeçalho da tabela. O conjunto de campos homônimos de uma tabela forma uma coluna. 18
Os Principais Elementos de um BD Relacional Tabelas Tabela de banco de dados relacional X Arquivo convencional de sistema operacional: As linhas da tabela não tem ordenação, a menos que na consulta seja explícita essa ordenação. Já num arquivo comum você pode acessar um certo conteúdo referenciando sua linha de relativa dentro do arquivo. Os valores de campo dentro da tabela são atômicos (não pode ser composto de outros) e monovalorados (possui um único valor). Esses tipos de representações podem ser feitas em muitas linguagens de programação. Para consultar um banco de dados o acesso pode ser por quaisquer critérios envolvendo os campos de uma ou mais linhas. Num arquivo isso só seria possível com uma estrutura de apoio como ponteiros. 19
Chave Primária Chave => Conceito básico para identificar as linhas e estabelecer relações entre as linhas de tabelas em um banco de dados. A chave primária é uma coluna (ou combinação de colunas) cujos valores identificam umalinha das demais dentro da tabela. Na tabela exemplo da página anterior a chave primária é a coluna CodigoEmp. Um exemplo de chave primária composta seria a tabela de Dependentes a seguir, onde é preciso se considerar as colunas CodEmp e NoDepen para identificar cada linha. CodEmp NoDepen Nome Tipo DataNasc E1 01 João Filho 12/01/2001 E1 02 Maria Filha 20/10/2003 E2 01 Ana Esposa 12/12/1970 20
Chave Estrangeira Uma chave estrangeira é uma coluna (ou colunas no caso da chave composta) cujos valores aparecem necessariamente como chave primária em alguma tabela. É através das chaves estrangeiras que são implementados os relacionamentos em um banco de dados relacional. 21
Implementação das Entidades e Atributos Este passo é razoavelmente óbvio: Cada entidade define uma tabela; Cada atributo da entidade define uma coluna desta tabela; Os atributos identificadores da entidade definem as colunas que compões a chaveprimária da tabela. Exemplo: Esquema relacional correspondente: Pessoa (CodigoPess, Nome, Endereco, DataNasc, DataAdm) 22
Implementação das Entidades e Atributos Na conversão dos nomes dos atributos para os nomes das colunas não é aconselhável transcrever os mesmos nomes dos atributos iretamente para o nome das colunas. Como as colunas são acessadas por outros programas é conveniente manter seus nomes curtos. Além disso em SGBDs nomes de colunas não podem espaços em branco nem hífens, e é aconselhável não usar acentos e cedilha. Ao se usar abreviaturas, manter o padrão durante todo o projeto. E não usar o nome da tabela junto aos nomes das colunas (salvo a chave primária). Relacionamento identificador: 23
Implementação das Entidades e Atributos Caso a entidade possua um relacionamento identificador (como no exemplo do Empregado e dependente da página anterior) devemos seguir: Para cada relacionamento identificador é criada na tabela que implementa a entidade identificada (Dependente recebe uma chave estrangeira que é a chave primária de Empregado); A chave primária da tabela que implementa a entidade identificada pelo relacionamento identificador é formada pelo identificador da entidade mais as chaves estrangeiras que mapeiam o relacionamento (a chave de Dependente é formada pelo código de empregado e o número de seqüência do dependente). 24