Modelo Entidade-Relacionamento (E-R)

Documentos relacionados
BANCO DE DADOS. Vinícius Pádua

Á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:

PHP INTEGRAÇÃO COM MYSQL PARTE 1

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

Comandos de Manipulação

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Introdução ao SQL. Aécio Costa

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

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

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

Banco de Dados. Prof. Antonio

Sistemas de Banco de Dados

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

Page 1. Prof. Constantino Jacob

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

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

Linguagem de Consulta - SQL

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

SQL Structured Query Language

Exercícios de Lógica Exercícios de Fixação 08

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

14/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

Structured Query Language (SQL) Aula Prática

FEAP - Faculdade de Estudos Avançados do Pará PROFª LENA VEIGA PROJETOS DE BANCO DE DADOS UNIDADE V- SQL

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

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

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

SQL. Autor: Renata Viegas

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

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

SQL (Structured Query Language)

SQL. Prof. Márcio Bueno.

Fundamentos de bancos de dados. Lúbia Vinhas

SQL (Structured Query Language)

SQL (Structured Query Language)

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

BANCO DE DADOS CONCEITOS BÁSICOS

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

Structured Query Language (SQL)

A linguagem SQL

Introdução a Sistemas de Bancos de Dados

Banco de Dados. Maurício Edgar Stivanello

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

SQL DDL. Frederico D. Bortoloti

Gerenciamento de um Sistema de

O que são Bancos de Dados?

Banco de Dados. Profª. Ana Leda

INTRODUÇÃO À LINGUAGEM SQL CRIAÇÃO DE BANCO DE DADOS E OTIMIZAÇÃO DE CONSULTAS

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

Introdução à linguagem SQL

UNIVERSIDADE VEIGA DE ALMEIDA CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS BANCO DE DADOS

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

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Fundamentos do Sistema Gerenciador de Banco de Dados

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

Linguagem de Consulta Estruturada SQL- DML

Capítulo 1 INTRODUÇÃO A BANCO DE DADOS

CURSO DE EXTENSÃO ON-LINE EM Oracle 10g Express Edition XE nível básico. Edital de seleção

Disciplina de Banco de Dados Parte V

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

Introdução ao SQL. O que é SQL?

Todas as alterações feitas nos dados durante a transação são temporárias até que a transação seja submetida a commit.

Linguagem SQL Sub-linguagem DDL

S Q L 31/03/2010. SQL - Structured Query Language Linguagem de Consulta Estruturada

SQL - Banco de Dados. Disciplina: Banco de Dados. Professor: José Antônio. José Antônio - CEFET-RN 23/09/2015

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

S Q L 15/01/2013. Enfoques de SQL. Enfoques de SQL SQL. Usos de SQL. SQL - Origem/Histórico. Gerenciamento de Dados e Informação

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados

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

BANCO DE DADOS I Atualizado em 13 de maio de 2009

EXEMPLOS DE COMANDOS NO SQL SERVER

Banco de Dados. Módulo 7 - Modelo Relacional. Definição do Esquema Relacional em SQL. modulo07.prz 1 10/09/01

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

Esta aula tem o objetivo de nos orientar durante este período em nossas aulas de Banco de Dados, não tem a pretensão de ser a única fonte de

Definida pelo American National Standard Institute (ANSI) em 1986

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1

Engenharia de Computação / Engenharia de Produção. Banco de Dados Prof. Maria das Graças da Silva Teixeira

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

Prof.: Clayton Maciel Costa

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

SQL (STRUCTUREDQUERY LANGUAGE)

Sistema de Processamento de Arquivos

Banco de Dados. StructuredQuery Language- SQL. Prof. Walteno Martins Parreira Jr

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Linguagem SQL Parte I

A & F Consultoria em Sistemas e Treinamentos 2014 af.tecnoserv@gmail.com. A linguagem SQL. Autor: Hélio de Almeida Fonte: Wikipédia

Linguagem de Consulta Estruturada (SQL)

ROTEIRO. A Linguagem SQL (I parte) CEFET.PHB - PI Prof. Jefferson Silva. As partes da linguagem SQL. A Linguagem de Definição de Dados (SQL-DDL)

SQL (Structured Query Language)

Banco de Dados I. Linguagem de Consulta (parte I) DDL DML

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

SQL: Definição de tabelas, Modificações à Base de Dados

Comandos DDL. id_modulo = id_m odulo

SQL. Hélder Antero Amaral Nunes

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Standards ISO e ANSI SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre

COMPETÊNCIAS ESPECÍFICAS Compreender e utilizar a linguagem SQL, na construção e manutenção de uma base de dados.

Transcrição:

Modelo Entidade-Relacionamento (E-R) composto n lote n n n contrato_compra_venda n possui proprietário possui n associado cadastro n banco faz fronteira pertence n ruas n quadras n financiado empréstimo n pago pagamento quadras comerciais quadras residenciais

Modelo Relacional Curso CURSOID TITULO DURAÇÃO relacionamento INFO BIO Informática Indust. Biologia 4 4 ENG Engenharia Civil 5 Aluno MAT Licenciatura Mat. 4 MATRICULA NOME CURSO 98765 João MAT 67765 84562 José Maria BIO ENG relações 34256 Luis INFO 3452672 Ana MAT 34529 Luana MAT

Conversão E-R Modelo Relacional Entidades com atributos chaves bem definidos geram uma relação. Relacionamentos podem gerar uma relação adicionando-se os atributos chaves das entidades relacionadas e os atributos do relacionamento. Entidades com atributos chaves não bem definidos geram uma relação adicionando-se a chave da relação que dependem.

Conversão E-R Modelo Relacional - Exemplo DER area_total data id area_const cpf nome lote n possui proprietário Relações Lote (id, area_total, area_const) Lote_proprietario (id_lote, cpf, data) Proprietario (cpf, nome)

Conversão E-R Modelo Relacional Cada entidade é traduzida para uma tabela. Cada atributo (simples) da entidade define uma coluna da tabela. A coluna correspondente ao atributo identificador é chave primária Ex: area_total id area_const lote Lote(id, area_total, area_const)

Conversão E-R Modelo Relacional Relacionamento A tradução do relacionamento depende da cardinalidade das entidades que participam do relacionamento. Formas básicas de tradução: Tabela própria Colunas adicionais dentro da tabela de entidade

Conversão E-R Modelo Relacional Relacionamento :N ou N: id area_total area_const Num_quadra area lote n pertence quadra Lote(id, area_total, area_const, num_quadra) Quadra(num_quasea, area)

Conversão E-R Modelo Relacional Relacionamento N:N area_total id_lote area_const id_rua nome lote n Faz fronteira n rua Lote(id_lote, area_total, area_const) Fronteira(id_lote, id_rua, num_inicial, num_final) Rua(id_rua, nome)

Conversão E-R Modelo Relacional Auto relacionamento N lote composto quantidade Lote(id_lote, area_total, area_const) Composição(id_lote, id_lote_comp, quantidade)

Conversão E-R Modelo Relacional Relacionamento múltiplo lote n possui proprietário n contrato_compra_venda Lote(id_lote, area_total, area_const) Proprietario(cpf, nome) Contrato(id_contrato, documento) Lote_Prop_Contr(id_lote, cpf, id_contrato, data)

Conversão E-R Modelo Relacional Especialização Solução quadra num_quadra area e uma quadra comercial quadra residencial valor_imposto_servico num_residencias Quadra comercial (num_quadra, area, imposto_servico) Quadra_residencial (num_quadra, area, num_residencias)

Conversão E-R Modelo Relacional Especialização Solução 2 quadra num_quadra area e uma quadra comercial quadra residencial valor_imposto_servico num_residencias Quadra(num_quadra, area) Quadra comercial (num_quadra, imposto_servico) Quadra_residencial (num_quadra, num_residencias)

Fases de projeto de um Banco de Dados Projeto Conceitual Abstração do mundo real Mundo Real Gera um esquema conceitual de BD independente do SGBD Projeto Lógico O esquema conceitual é mapeado para o modelo de implementação de dados do SGBD Projeto Físico Especificação das necessidades de recursos do SGBD como estruturas de dados, métodos de acesso e segurança Projeto Conceitual Projeto Lógico Projeto Físico

Projeto Lógico de BD Normalização Processo pelo qual um esquema de tabelas (relações) insatisfatório é quebrado de forma que seus atributos formem relações menores que sejam mais adequadas: Sem redundância de informações Maior facilidade de manutenção Baseado em varias regras de normalização: a forma normal 2 a forma normal 3 a forma normal

Normalização Exemplo: solicitacao_compra num_solic data_solic cod_func nome_func contato cod_prod desc_prod quant_prod 2/06/09 func0 Joao Americo 39436523 papel 3 39456444 2/06/09 func0 Joao Americo 39436523 2398 tinta 2 39456444 2/06/09 func0 Joao Americo 39436523 4300 impressora 39456444 002 6/04/03 func02 Luis Souza 3943658 papel 002 6/04/03 func02 Luis Souza 3943658 200 CD

Problemas databela Não-Normalizada Redundância dos dados Possui vários grupos repetidos Anomalias de inserção Inserir um novo funcionário Inserir um novo produto Anomalias de atualização Alterar o nome de um funcionário Anomalias de remoção Remover um produto num_solic data_solic cod_func nome_func contato cod_prod desc_prod quant_prod 2/06/09 func0 Joao Americo 39436523 papel 3 39456444 2/06/09 func0 Joao Americo 39436523 2398 tinta 2 39456444 2/06/09 func0 Joao Americo 39436523 4300 impressora 39456444 002 6/04/03 func02 Luis Souza 3943658 papel 002 6/04/03 func02 Luis Souza 3943658 200 CD

Problemas databela Não-Normalizada Redundância dos dados Possui vários grupos repetidos Anomalias de inserção Inserir um novo funcionário Inserir um novo produto Anomalias de atualização Alterar o nome de um funcionário Anomalias de remoção Remover um produto num_solic data_solic cod_func nome_func contato cod_prod desc_prod quant_prod 2/06/09 func0 Joao Americo 39436523 papel 3 39456444 2/06/09 func0 Joao Americo 39436523 2398 tinta 2 39456444 2/06/09 func0 Joao Americo 39436523 4300 impressora 39456444 002 6/04/03 func02 Luis Souza 3943658 papel 002 6/04/03 func02 Luis Souza 3943658 200 CD

Problemas databela Não-Normalizada Redundância dos dados Anomalias de atualização Possui vários grupos repetidos Alterar o nome de um funcionário Anomalias de inserção Anomalias de remoção Inserir um novo funcionário Remover um produto Inserir um novo produto Gera linhas incompletas! num_solic data_solic cod_func nome_func contato cod_prod desc_prod quant_prod 2/06/09 func0 Joao Americo 39436523 papel 3 39456444 2/06/09 func0 Joao Americo 39436523 2398 tinta 2 39456444 2/06/09 func0 Joao Americo 39436523 4300 impressora 39456444 002 6/04/03 func02 Luis Souza 3943658 papel 002 6/04/03 func02 Luis Souza 3943658 200 CD

Problemas databela Não-Normalizada Redundância dos dados Possui vários grupos repetidos Anomalias de inserção Inserir um novo funcionário Inserir um novo produto Anomalias de atualização Alterar o nome de um funcionário Anomalias de remoção Remover um produto Tem que alterar várias linhas! num_solic data_solic cod_func nome_func contato cod_prod desc_prod quant_prod 2/06/09 func0 Joao Americo 39436523 papel 3 39456444 2/06/09 func0 Joao Americo 39436523 2398 tinta 2 39456444 2/06/09 func0 Joao Americo 39436523 4300 impressora 39456444 002 6/04/03 func02 Luis Souza 3943658 papel 002 6/04/03 func02 Luis Souza 3943658 200 CD

Problemas databela Não-Normalizada Redundância dos dados Anomalias de atualização Possui vários grupos repetidos Alterar o nome de um funcionário Anomalias de inserção Anomalias de remoção Inserir um novo funcionário Remover um produto Inserir um novo produto Remove informação sobre os funcionários num_solic data_solic cod_func nome_func contato cod_prod desc_prod quant_prod 2/06/09 func0 Joao Americo 39436523 papel 3 39456444 2/06/09 func0 Joao Americo 39436523 2398 tinta 2 39456444 2/06/09 func0 Joao Americo 39436523 4300 impressora 39456444 002 6/04/03 func02 Luis Souza 3943658 papel 002 6/04/03 func02 Luis Souza 3943658 200 CD

Normalização a Forma normal: Uma relação esta na FN se, e somente se, todos os domínios contiverem apenas valores atômicos. Uma relação está na FN quando seus atributos não contém grupos de repetição Uma maneira de trazer uma tabela para a FN é separar as entidades claramente identificadas em tabelas separadas

Normalização a Forma normal: solicitacao_compra num_solic data_solic cod_func nome_func cod_prod desc_prod quant_prod 2/06/03 func0 Joao Silva papel 3 2/06/03 func0 Joao Silva 2398 tinta 2 2/06/03 func0 Joao Silva 4300 impressora FN solicitacao_compra num_solic data_solic cod_func nome_func 2/06/03 func0 Joao Silva solicitacao_produtos num_solic cod_prod desc_prod quant_prod papel 3 2398 tinta 2 4300 impressora

Normalização Dependência funcional Dada uma relação R, o atributo Y de R é funcionalmente dependente do atributo X de R (R.X R.Y) se, e somente se, sempre que duas tuplas de R têm o mesmo valor para X elas tem também o mesmo valor para Y. Ex.: cod_func nome_func cod_prod desc_prod num_solic, cod_prod quant_prod

Normalização 2 a Forma normal: Uma relação está na segunda forma normal se, e apenas se, estiver na FN, e cada atributo não-chave for totalmente dependente funcional da chave primária. Ocorre quando a chave primária é composta por mais de um campo. verificar se todos os campos que não fazem parte da chave dependem de todos os campos que compõem a chave. Se algum campo depender somente de parte da chave composta, então este campo deve pertencer a outra tabela.

Normalização 2 a Forma normal: solicitacao_produtos num_solic cod_prod desc_prod quant_prod papel 3 2398 tinta 2 4300 impressora 2FN produtos solicitacao_produtos cod_prod desc_prod num_solic cod_prod quant_prod papel 3 2398 tinta 2398 2 4300 impressora 4300

Normalização 2 a Forma normal - resultado: solicitacao_compra num_solic data_solic cod_func nome_func 2/06/03 func0 Joao Silva cod_prod papel produtos desc_prod solicitacao_produtos 2398 tinta num_solic cod_prod quant_prod 4300 impressora 3 2398 2 4300

Normalização 3 a Forma normal: Um relação está na terceira forma normal se e apenas se, estiver na 2FN, e não tiver dependências transitivas Dependência transitiva: ocorre quando um atributo não-chave, além de depender da chave primária da tabela, depende funcionalmente de outro atributo ou combinação de atributos não-chave. Em uma tabela na 3FN não existem atributos não-chave que tenham dependência de outros atributos não chave.

Normalização 3 a Forma normal: solicitacao_compra num_solic data_solic cod_func nome_func 2/06/03 func0 Joao Silva 3FN funcionarios solicitacao_compra cod_func nome_func num_solic data_solic cod_func func0 Joao Silva 2/06/03 func0

Normalização 3 a Forma normal - resultado: funcionarios cod_func nome_func func0 Joao Silva produtos num_solic solicitacao_compra data_solic cod_func 2/06/03 func0 cod_prod desc_prod papel solicitacao_produtos 2398 tinta num_solic cod_prod quant_prod 4300 impressora 3 2398 2 4300

SQL

SQL O que é a SQL? Structured Query Language Permite o acesso e a manipulação de uma base de dados relacional É um padrão ANSI (American National Standards Institute) O que é possível fazer com a SQL? Executar consultas, recuperar dados, inserir, atualizar e remover registros, criar novos bancos, criar novas tabelas, criar stored procedures e views, definir permissões sobre tabelas, procedures e views. SQL é padrão mas... Existem diferentes versões de SQL. Mas espera-se que a maioria dos comandos sejam suportados de maneira similar

SQL - Structured Query Language Linguagem de consulta usada pela maioria de SGBD-R e SGBD-OR Baseada na álgebra e cálculo relacional É divida em: Linguagem de manipulação de dados (SQL DML) Linguagem de definição de dados (SQL DDL) Definição de visões (SQL DDL) Especificação de autorização (SQL DDL) Especificação de integridade (SQL DDL) Controle de transação (SQL DDL)

SQL - Structured Query Language Alguns comandos em SQL select Comandos Consultar dados Usado para Tipo DML insert, update, delete Incluir, alterar e remover dados DML commit, rollback Controlar transações DDL create, alter, drop Definir, alterar e remover esquemas (tabelas) DDL

SQL - Structured Query Language CREATE TABLE cliente (nome endereço cidade PRIMARY KEY CHAR(20) NOT NULL, CHAR(30), CHAR(30), (nome)) ALTER TABLE cliente ADD RG CHAR(0) SELECT nome, endereco FROM cliente WHERE cidade = São José dos Campos

Álgebra Relacional - Resumo

SQL - Básico Seleção SELECT * FROM solicitacao_compra WHERE cod_func = func0 Projeção SELECT cod_func FROM solicitacao_compra Produto Cartesiano SELECT funcionarios.*, solicitacao_compra.* FROM funcionarios INNER JOIN solicitacao_compra ON funcionarios.cod_func = solicitacao_compra.cod_func