Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
* Banco de dados É um conjunto de registros dispostos em estrutura regular que possibilita a reorganização dos mesmos e produção de informação. Um banco de dados é usualmente mantido e acessado por meio de um software conhecido como Sistema Gerenciador de Banco de Dados (SGBD). Um SGBD corresponde a um conjunto de programas que permitem armazenar, modificar e extrair informação de um banco de dados. Ele age como interface entre os programas de aplicação e os dados físicos. Normalmente um SGBD adota um modelo de dados. O mais adotado hoje em dia é o modelo relacional, onde as estruturas têm a forma de tabelas, compostas por tuplas (linhas) e colunas. Já a linguagem padrão para os bancos de dados relacionais é a Linguagem de Consulta Estruturada (SQL). O relacionamento entre conjunto de dados (tabelas) não existe fisicamente (apenas lógico); * Mapeamento Objeto Relacional * Definições Relação tabela bi-dimensional, composta de linhas e colunas de dados. Atributo = Coluna Grau de uma relação: Número de atributos. Tupla (ou n-uplet): Uma linha da relação = um registro Chave Primária um ou mais atributos de uma tabela, cujos valores, nunca se repetem na tabela. Em chaves primárias, não pode haver valores nulos. Chave Estrangeira: um atributo em uma tabela que faz referência a chave primária de outra tabela. Ou seja, passa a existir uma relação entre essas duas tabelas. A finalidade da chave estrangeira é garantir a integridade dos dados referenciais. Integridade referencial: Se uma determinada tabela A possui um atributo que é chave estrangeira em uma tabela B, então em cada tupla da tabela A ele deve: Ser igual a uma chave primária existente em B ou ter o valor nulo. Ou seja, não pode existir na chave estrangeira um valor que não exista na tabela na qual ela é chave primária. * Mapeamento Objeto Relacional * Esquema de Banco de Dados Relacional: nomes das relações seguidos pelos nomes dos atributos, com os atributos chaves sublinhados e com as chaves estrangeiras identificadas. Exemplo de esquema: Aluno (Aluno_Matricula, Aluno_Nome) Curso (Curso_ID, Curso_Nome) Matriculado (Curso_ID, Aluno_Matricula, Nota) Chave estrangeira: Curso_Id referencia Curso_Id em Curso Aluno_Matricula referencia Aluno_Matricula em Aluno. * Mapeamento Objeto Relacional * Derivação do diagrama de classe para o modelo relacional Regras básicas: 1) Toda Classe vira uma Tabela (Relação) no Modelo Relacional 2) Todo Atributo da Classe vira um Atributo (Coluna) no Modelo Relacional 3) Na derivação do Diagrama de Classe para o Modelo Relacional só interessa analisar o Grau (restrição de mapeamento ou cardinalidade) máximo do relacionamento. * Mapeamento Objeto Relacional * Relacionamentos 1:N (várias classes) A Tabela cuja a classe possui multiplicidade máxima N carrega o identificador da tabela cuja a classe possui multiplicidade máxima 1. * Mapeamento Objeto Relacional Empregado (matricula,nome) Projeto (código,nome,descricao,valor,dtInicio,duração,matricula) Chave Estrangeira:matricula referencia matricula em Empregado * Relacionamentos 1:N (mesma classe) Incluir uma nova chave na mesma tabela, passando a ter o papel de chave estrangeira. Empregado (matricula, nome, matricula_chefe) Chave Estrangeira: matricula_chefe referencia matricula em funcionario * Mapeamento Objeto Relacional * Relacionamentos 1:1 (várias classes) Incluir a chave primária na tabela cuja multiplicidade mínima da classe é 0. Aluno (matricula,nome,dtNascimento,numero) Chave Estrangeira: numero referencia numero em Armario Armario (numero, localizacao) * Mapeamento Objeto Relacional * Relacionamentos 1:1 (mesma classe) Incluir uma nova chave na própria tabela. Pessoa (cpf, nome, cpf_conjuge) Chave Estrangeira: cpf_conjuge referencia cpf em Pessoa * Mapeamento Objeto Relacional * Relacionamentos M:N (várias classes) O relacionamento torna-se uma tabela, carregando seus atributos e os identificadores das tabelas que ele se relaciona. Aluno (matricula,nome,dtNascimento) Turma (codigo,anosemestre) Cursa (matricula, codigo, G1,G2,G3,faltas) Chaves Estrangeiras: matricula referencia matricula em Aluno codigo referencia codigo em Turma * Mapeamento Objeto Relacional * Relacionamentos M:N (mesma classe) Criar nova tabela, com os identificadores da classe Disciplina (codigo,nome,conteudo) Pre-Requisito (codigo_exige, codigo_satisfaz). Chaves Estrangeiras: Codigo_exige referencia codigo em disciplina Codigo_satisfaz referencia codigo em disciplina * Mapeamento Objeto Relacional * Relacionamentos de generalização Todas as classes viram tabelas. As tabelas referentes as subclasses carregam a chave primária da super-classe. CargaTransportada (codigo, descrição, peso, volume) Frigorificada (codigo, tempMin, tempMax) Perecivel (codigo, dtVencimento) Chave Estrangeira: codigo referencia codigo em CargaTransportada codigo referencia codigo em CargaTransportada * Mapeamento Objeto Relacional * Formas Normais Formas normais são regras para estruturar relações eliminando anomalias. Primeira Forma Normal (1NF): Todos os atributos devem ser atômicos (ou seja, contêm um só valor). Dependência Funcional (DF): Um valor de um (ou mais) atributo(s) em uma tupla (linha, registro) determina o valor de outro(s) atributo(s) na tupla. Representação DF: A B Significado: se qualquer par de tuplas (linhas, registros) possuem o mesmo valor para o atributo A, então elas têm que ter o mesmo valor do atributo B. Esta definição também vale se A e B forem conjuntos de atributos ao invés de um só atributo. O(s) atributo(s) do lado esquerdo de uma DF é(são) chamados de determinante(s), porque ele(s) determina(m) o valor do(s) atributo(s) do lado direito. Uma chave primária de uma relação é um determinante, pois seu valor determina unicamente o valor de todos os outros atributos de uma tupla. * Normalização * Exemplo de uma relação que não é 1NF (valores múltiplos em Prédio_ID) * Normalização * Segunda Forma Normal (2NF): Nenhum atributo não-chave depende funcionalmente de somente uma parte de chave. Ela somente pode ser violada no caso de chaves compostas. A 2NF também pode ser expressa por: Todo atributo não-chave depende funcionalmente de TODA a chave. Exemplo de uma relação que não é 2NF: Chave primária: Func_Matrícula e Prédio ID; Func_Nome depende somente de Func_Matricula * Normalização * Terceira Forma Normal (3NF): Todo determinante é uma chave. Como passar da 2a. para a 3a. forma normal: Decomposição da relação, ou seja, criar nova relação, com os atributos que transgridem a DF. Resultado: (3FN) Alocado (Func-MAt, Predio_ID, Data) Funcionário (Func_Mat, Nome) * Normalização * Terceira Forma Normal (3NF): Todo determinante é uma chave. Como passar da 2a. para a 3a. forma normal: Decomposição da relação, ou seja, criar nova relação, com os atributos que transgridem a DF. Resultado: (3FN) Alocado (Func-MAt, Predio_ID, Data) Funcionário (Func_Mat, Nome) * Normalização
Compartilhar