Resumo – tópicos de Banco de Dados I
prof. Edilberto Silva
Abstração de dados
Banco de Dados
Conceitos Fundamentais de Banco de Dados
Artigo
de
Ricardo
Rezende
([email protected]) publicado na Revista Sql
Magazine. Disponível on-line em http://www.devmedia.
com.br/articles/viewcomp.asp?comp=1649
(acesso
15/12/08) – (texto na íntegra)
http://edilms.eti.br
O sistema de banco de dados deve garantir uma visão totalmente abstrata do banco de dados para o usuário, ou seja, para o usuário do banco de dados pouco
importa qual unidade de armazenamento está sendo
usada para guardar seus dados, contanto que os mesmos estejam disponíveis no momento necessário.
Esta abstração se dá em três níveis (Figura 2):
“A idéia deste artigo não é a de “reinventar a roda”,
mas sim a de trazer à tona todos os fundamentos que
servem de pilar para o imenso mundo que é banco de
dados.
Conceitos Básicos
Segundo Korth, um banco de dados “é uma coleção
de dados inter-relacionados, representando informações sobre um domínio específico”, ou seja, sempre
que for possível agrupar informações que se relacionam
e tratam de um mesmo assunto, posso dizer que tenho
um banco de dados.
•
•
•
Nível de visão do usuário: as partes do banco de
dados que o usuário tem acesso de acordo com a
necessidade individual de cada usuário ou grupo de
usuários;
Nível conceitual: define quais os dados que estão
armazenados e qual o relacionamento entre eles;
Nível físico: é o nível mais baixo de abstração, em
que define efetivamente de que maneira os dados
estão armazenados.
Podemos exemplificar situações clássicas como
uma lista telefônica, um catálogo de CDs ou um sistema
de controle de RH de uma empresa.
Já um sistema de gerenciamento de banco de dados
(SGBD) é um software que possui recursos capazes de
manipular as informações do banco de dados e interagir
com o usuário. Exemplos de SGBDs são: Oracle, SQL
Server, DB2, PostgreSQL, MySQL, o próprio Access ou
Paradox, entre outros.
Figura 2. Níveis de abstração.
Por último, temos que conceituar um sistema de
banco de dados como o conjunto de quatro componentes básicos: dados, hardware, software e usuários. Date
conceituou que “sistema de bancos de dados pode ser
considerado como uma sala de arquivos eletrônica”. A
Figura 1 ilustra os componentes de um sistema de banco de dados.
Figura 1. Componentes de um sistema de banco de
dados.
Os objetivos de um sistema de banco de dados são
o de isolar o usuário dos detalhes internos do banco de
dados (promover a abstração de dados) e promover a
independência dos dados em relação às aplicações, ou
seja, tornar independente da aplicação, a estratégia de
acesso e a forma de armazenamento.
Projeto de banco de dados
Todo bom sistema de banco de dados deve apresentar um projeto, que visa a organização das informações e utilização de técnicas para que o futuro sistema
obtenha boa performance e também facilite infinitamente as manutenções que venham a acontecer.
O projeto de banco de dados se dá em duas fases:
1. Modelagem conceitual;
2. Projeto lógico.
Estas duas etapas se referem a um sistema de banco de dados ainda não implementado, ou seja, que
ainda não exista, um novo projeto. Para os casos em
que o banco de dados já exista, mas é um sistema legado, por exemplo, ou um sistema muito antigo sem
documentação, o processo de projeto de banco de dados se dará através da utilização de uma técnica chamada de Engenharia Reversa, que será visto em outra
oportunidade.
Modelo conceitual
É a descrição do BD de maneira independente ao
SGBD, ou seja, define quais os dados que aparecerão
no BD, mas sem se importar com a implementação que
se dará ao BD. Desta forma, há uma abstração em
nível de SGBD.
Resumo – tópicos de Banco de Dados I
prof. Edilberto Silva
Uma das técnicas mais utilizadas dentre os profissionais da área é a abordagem entidaderelacionamento (ER), onde o modelo é representado
graficamente
através
do
diagrama
entidaderelacionamento (DER) (Figura 3).
http://edilms.eti.br
delo lógico para a linguagem do software escolhido
para implementar o sistema.
Conclusões
Nesta primeira coluna, abordei os conceitos básicos
de banco de dados. Estes conceitos são os primeiros
passos para se aventurar em projetos de bancos de
dados. Vimos algumas terminologias e conceitos que
são importantes para iniciar um projeto de maneira a
documentar todas as etapas tendo assim, uma ferramenta de apoio fundamental para a implementação e
manutenção futura no sistema.” Ricardo Rezende
Figura 3. Exemplo
relacionamento.
de
diagrama
entidade-
O modelo acima, entre outras coisas, nos traz informações sobre Alunos e Turmas. Para cada Aluno, será
armazenado seu número de matrícula, seu nome e
endereço, enquanto para cada turma, teremos a informação de seu código, a sala utilizada e o período.
Modelo Lógico
Descreve o BD no nível do SGBD, ou seja, depende
do tipo particular de SGBD que será usado. Não podemos confundir com o Software que será usado. O tipo
de SGBD que o modelo lógico trata é se o mesmo é
relacional, orientado a objetos, hierárquico, etc.
Abordaremos o SGBD relacional, por serem os mais
difundidos. Nele, os dados são organizados em tabelas
(Quadro 1).
Aluno
Mat_aluno Nome
1
Cecília Ortiz Rezende
2
Abílio José Dias
3
Renata Oliveira Franco
Turma
Cod_turma Sala
1
8
2
5
Quadro 1. Exemplo de tabelas em um
Endereço
Rua dos Ipês,
37
Av.Presidente
Jânio Quadros
Rua Nove de
Julho, 45
Período
Manhã
Noite
SGBD relacional.
O modelo lógico do BD relacional deve definir quais
as tabelas e o nome das colunas que compõem estas
tabelas.
Para o nosso exemplo, poderíamos definir nosso
modelo lógico conforme o seguinte:
Aluno(mat_aluno, nome, endereco)
Turma (cod_turma, sala, periodo)
É importante salientar que os detalhes internos de
armazenamento, por exemplo, não são descritos no
modelo lógico, pois estas informações fazem parte do
modelo físico, que nada mais é que a tradução do mo-
Conceitos Fundamentais de Banco de Dados (parte 2)
Artigo
de
Ricardo
Rezende
Parte
2
([email protected]) publicado na Revista Sql
Magazine. Disponível on-line em http://www.devmedia
.com.br/articles/viewcomp.asp?comp=1678
(acesso
15/12/08) – (texto na íntegra)
Histórico
A melhor maneira de entendermos o presente é conhecendo o passado. Seguindo uma dica de um amigo,
Fernando Boaglio (www.boaglio.com), neste artigo irei
abordar os primórdios dos bancos de dados, mostrando
sua evolução e cronologia até os dias de hoje.
Em muitos momentos conseguimos entender exatamente o motivo que trouxe a tecnologia ao atual estágio de amadurecimento e podemos inclusive arriscar
alguns palpites das tendências para os próximos anos.
Não tenho a pretensão de ser um guru ou vidente, apenas tentarei esclarecer o internauta de como as coisas
aconteceram neste nosso mundo dos bancos de dados.
Boa leitura!
Do antigo ao recente
Temos que voltar aos registros de bibliotecas, negócios em geral, registros policiais, fichas de pacientes e
todas as informações armazenadas de maneira impressa para consultas posteriores. Foi lá que tudo começou.
Havia um histórico muito longo de informações armazenadas desta maneira e também uma metodologia de
indexação e recuperação da informação quando se
precisava dela. Não se pode ignorar esta história, pois
há muito a se aprender com os sucessos e fracassos
deste pessoal que manipulava estas informações. Boas
práticas e bons princípios de projetos de bancos de
dados datam aquela época e muito se aprendeu para a
criação de bons projetos que alcançam boa performance, segurança e confiabilidade.
Década de 60
Os computadores se tornam parte efetiva do custo
das empresas juntamente com o crescimento da capacidade de armazenamento. Foram desenvolvidos dois
principais modelos de dados: modelo em rede
(CODASYL - Comitee for Data Systems Language) e o
modelo hierárquico (IMS – Information Management
System). O acesso ao BD é feito através de operações
de ponteiros de baixo nível que unem (link) os registros.
Detalhes de armazenamento dependiam do tipo de
Resumo – tópicos de Banco de Dados I
prof. Edilberto Silva
informação a ser armazenada, desta forma, a adição de
um campo extra necessitava de uma reescrita dos fundamentos de acesso/modificação do esquema. Os usuários precisavam conhecer a estrutura física do BD para
poder realizar uma consulta.
Modelo de dados em rede (Figura 1):
•
•
•
Os primeiros trabalhos foram realizados em
1964 por Charles Bachman;
Dados são representados por uma coleção
de registros e os relacionamentos por meio
de links;
É representado por um diagrama constituído
por caixas e linhas;
Década de 70
Muitas discussões a respeito do valor da competição
entre os sistemas enquanto a teoria de banco de dados
conduz ao objetivo final de projeto de pesquisa. Dois
principais protótipos de sistema relacional foram desenvolvidos entre 1974 e 1977 e demonstram um ótimo
exemplo de como a teoria conduz a boas práticas.
•
Ingres: Desenvolvido pela UCB. Que no final
das contas serviu como base para Ingres
Corp., Sybase, MS SQL Server, Britton-Lee,
Wang PACE. Este sistema utilizava QUEL como linguagem de consulta;
•
System R: Desenvolvido pela IBM San Jose e
serviu de base para o IBM SQL/DS, IBM DB2,
Oracle, todas os BD da HP, Tandem's NonStop SQL. Este sistema utilizava SEQUEL como linguagem de consulta.
São usados apenas relacionamentos muitos-paramuitos.
Figura 1. Representação de um modelo de dados
em rede.
•
•
•
•
Modelo de dados hierárquico (Figura 2)
Também se utilizava de registros para representar os dados e links para os relacionamentos;
São organizados na forma de uma árvore
com raiz;
Como Exemplo: Clipper, Dbase 2, Fox Pro,
COBOL.
http://edilms.eti.br
O termo Sistema de Gerenciamento de Banco de
Dados Relacional (SGBDR – RDBMS em inglês) foi
definido durante este período.
1976
O
Dr.
Peter
Chen
(visite
bit.csc.lsu.edu/~chen/chen.html (Figura 4) propõe o
modelo Entidade-Relacionamento (ER) para projetos de
banco de dados dando uma nova e importante percepção dos conceitos de modelos de dados. Assim como
as linguagens de alto nível, a modelagem ER possibilita
ao projetista concentrar-se apenas na utilização dos
dados, sem se preocupar com estrutura lógica de tabelas.
Figura 4. Dr. Peter Chen, criador do modelo ER.
Início dos anos 80
Figura 2. Representação de um modelo de dados
hierárquico.
O maior sucesso comercial foi o sistema SABRE,
desenvolvido pela IBM e American Airlines.
1970 – 1972
Edgar Frank Codd (Figura 3) propõe o modelo de
dados relacional, que se tornou um marco em como
pensar em banco de dados. Ele desconectou a estrutura lógica do banco de dados do método de armazenamento físico. Este sistema se tornou padrão desde então.
Figura 3. Dr. Edgar Frank Codd, o pai do modelo relacional.
Conheça mais o trabalho do Dr. Codd em
http://www.informatik.unitrier.de/~ley/db/about/codd.html
A comercialização de sistemas relacionais começa a
virar uma febre entre as organizações.
Metade dos anos 80
A Linguagem Estruturada de Consulta – SQL (Structured Query Language) se torna um padrão mundial. A
IBM transforma o DB2 como carro chefe da empresa
em produtos para BD. Os modelos em rede e hierárquico passam a ficar em segundo plano praticamente sem
desenvolvimentos utilizando seus conceitos, porém
vários sistemas legados continuam em uso. O desenvolvimento do IBM PC desperta muitas empresas e
produtos de BD como: RIM, RBASE 5000, PARADOX,
OS/2 Database Manager, Dbase III e IV (mais tarde
transformado em FoxBase e mais tarde ainda como
Visual FoxPro), Watcom SQL, entre outros.
Início dos anos 90
Tem início uma leve crise econômica nas indústrias
e algumas empresas sobrevivem oferecendo alguns
Resumo – tópicos de Banco de Dados I
prof. Edilberto Silva
produtos a custos muito elevados. Muito desenvolvimento acontece em ferramentas de desenvolvimento
para o desktop no desenvolvimento de aplicações (client tolls), tais como: PowerBuilder (Sybase), Oracle
Developer, Visual Basic (Microsoft), entre outros.
O modelo cliente-servidor (client-server) passa a ser
uma regra para futuras decisões de negócio e vemos o
desenvolvimento de ferramentas de produtividade como
Excel/Access (Microsoft) e ODBC, também é marcado
como o início dos protótipos de Object Database Management Systems (ODBMS).
Metade dos anos 90
É quando vemos a explosão da Internet./WWW e
uma louca corrida para prover acesso remoto a sistemas de computadores com dados legados. Percebe-se
um crescimento exponencial na tecnologia Web/BD.
Aumentam o uso de soluções de código aberto (open source) através de gcc, cgi, Apache, MySQL, etc.
Processos de transação em tempo real (OLTP - OnLine Transaction Process) e processos analíticos em
tempo real (OLAP – On-Line Analitical Process) atingem maturidade através de muitos negócios utilizando
os PDVs (Ponto de Venda).
Final dos anos 90
O grande investimento em empresas de Internet impulsiona as vendas de ferramentas para conexão
Web/Internet/BD. Active Server Pages, Front Page,
Java Servlets, JDBC, Enterprise Java Beans, ColdFusion, Dream Weaver, Oracle Developer 2000, são um
exemplo dessas ferramentas.
Chegamos ao século 21
Vemos a decadência da indústria da Internet de uma
maneira geral, mas sólidos crescimentos em aplicações
para BD continuam.
Aparecem mais aplicações que interagem com
PDAs (Personal Digital Assistant), transações em
PDVs, consolidação de vendas, etc.
Três companhias predominam no amplo mercado de
BD: IBM (que comprou a Informix), Microsoft e Oracle.
http://edilms.eti.br
Estamos presenciando grandes projetos envolvendo
BD como o projeto Genoma, geologia, segurança nacional e dados de exploração espacial.
Data mining, data warehousing, data marts são técnicas utilizadas atualmente e no futuro serão utilizados
cada vez mais, sem dúvida alguma.
Sistemas de compras personalizadas e inteligentes
serão fato e utilizarão histórico de vendas.
Sucessores do SQL (e quem sabe dos Sistemas de
Gerenciamento de Banco de Dados Relacionais –
RDBMS, em inglês) surgirão no futuro. Várias tentativas
de padronizar um sucessor do SQL não foram bem
sucedidas. SQL92, SQL2 e SQL3 ainda estão pouco
potentes e mais extensões são difíceis de implementar.
Muito provavelmente isto será alcançado pelo XML e
outras técnicas emergentes. XML com Java para BD é
a nova aposta como o “próximo grande acontecimento”.
Vejamos mais tarde o que mais será novidade.
O uso de BD móveis são os novos produtos que
vem surgindo para comercialização em vários segmentos. Processos de transações distribuídas começam a
se tornar uma regra em várias áreas de planejamento
de negócios.
Provavelmente veremos uma leve crise nas vendas
dos RDBMS e Linux com Apache suportarão MySQL (e
até mesmo Oracle) com um hardware relativamente
barato e isso será a maior ameaça ao alto custo de
sistemas legados da Oracle e DB2 e então se dará
início a projetos para manter seus clientes.
Tudo será orientado a objeto, inclusive os BD. Object Database Management Group (ODMG) propôs um
padrão que foi aceito e, quem sabe, algo venha deles.
Assuntos como ética e segurança tendem a diminuir,
mas invariavelmente voltarão à tona.
Seremos capazes de consultar um BD de registros
médicos/genéticos de um futuro empregado de nossa
empresa?
Poderemos consultar as informações de um(a) futuro(a) companheiro(a) / namorado(a) para descobrir
possíveis falhas ou distúrbios genéticos?
A submarino.com poderá ficar de olho nas suas
compras de livros ou CDs?
2003
Em 18 de abril, morre o pai do modelo relacional, o
Dr. Edgar Frank “Ted” Codd. Aos 76 anos de idade, em
sua casa na Flórida. Nascido em 1923 em Portland, na
Inglaterra. O caçula de 07 irmãos, filho de pai fabricante
de artigos de couro e mãe professora.
Quais as tendências?
Sistemas gigantescos (Terabytes) estão surgindo e
necessitarão cada vez mais de novos recursos para
manipulação e análise dos dados.
Haverá um banco de dados nacional com informações de estupradores, assassinos, traficantes?
Quem terá permissão de fazer rastreamentos na
Web?
Quantas vezes, nestes últimos seis meses, você visitou uma sala de bate-papo, site pornográfico, site de
sátira política, visitou o site da SQL Magazine?
Quem terá permissão de armazenar ou ver estas informações?
Resumo – tópicos de Banco de Dados I
prof. Edilberto Silva
E o questionamento mais difícil de se responder:
Quem tomará estas decisões?
Conclusões
Como podemos perceber, a história nos ensina muito do que somos hoje. Não voltaremos ao passado para
trabalhar com o velho WordStar, mas é extremamente
importante aprendermos com o passado para decidirmos melhor o nosso futuro afinal, o futuro está em nossas mãos. “
http://edilms.eti.br
9. |X| Junção - junção é utilizada para combinar tuplas de duas relações partindo dos atributos comuns a ambas. Correlação: INNER JOIN, OUTER
JOIN, LEFT JOIN, RIGHT JOIN
IDEMPOTENTES
o Onde de pode aplicar IdemPotência:
o União, Interseção e Junção
Isolamento das Transações
Fim do artigo
Conceitos
• Modelagem conceitual Nesta fase, é construído um modelo conceitual na forma de um diagrama entidade-relacionamento (DER).
o Este modelo captura as necessidades da organização em termos de armazenamento de dados de
forma independente de implementação.
• Projeto lógico Esta etapa objetiva transformar
o modelo conceitual obtido na primeira fase em um
modelo lógico.
o O modelo lógico define como o banco de dados
será implementado em um TIPO de SGBD específico.*
Álgebra Relacional
Primitivas e Binárias
1. Χ Produto Cartesiano – combinação de Tuplas.
Correlação: SELECT
2. U União - cria uma relação partindo de duas outras. Correlação: UNION
3. ─ Diferença - obter uma relação a partir da diferença da primeira pela segunda relação. Correlação: NOT IN
Específicas para relações Primitivas e Unárias
4. σ Seleção - Retorna tuplas que satisfazem um
predicado. Subconjunto horizontal de uma relação.
Correlação: WHERE. <, =, >, AND, NOT, IN
5. π Projeção – retorna um ou mais atributos. Correlação: SELECT.
6. ρ Renomeação - renomear uma relação com outro nome, permitindo desta forma o uso desta como primeiro operando Permite também renomear
atributos.
Adicionais
7. ∩ Interseção - todas as tuplas que pertençam a
ambas as relações presentes na operação. Correlação: INNER JOIN, =, IN
8.
Divisão - produz como resultado a projeção de
todos os elementos da primeira relação que se relacionam com todos os elementos da segunda relação. Correlação: IN
O Padrão SQL ANSI/ISSO define quatro níveis
de isolamento de transações baseados nas seguintes situações:
•
Dirty Reads ocorre quando uma
transação lê dados escritos por uma transação
corrente que ainda não foi confirmada
(COMMIT).
•
Non-Repeatable Reads uma transação lê um dado que ela já havia lido anteriormente, e descobre que aqueles dados foram
modificados por outra transação (confirmada
após a primeira leitura).
•
Phantom Read uma transação lê um
conjunto de linhas que satisfaça algum critério
de pesquisa. Outra transação insere uma linha
que satisfaça o critério da anterior. Se a primeira transação executar novamente o comando
de pesquisa, ela receberá um conjunto diferente de linhas.
Os quadros de níveis de isolamentos são descritos a seguir para você entender melhor.
•
Read Uncommitted Uma transação
pode enxergar dados não confirmados por outra transação
•
Read Committed Uma transação não
pode enxergar dados não confirmados por outra transação, até que estes dados sejam confirmados.
•
Repeatable Read Uma transação
neste nível garante que valores já lidos não
possam ser alterados por outra transação.
•
Serializable Uma transação só poderá interagir com outras transações concorrentes
no sentido de produzir o mesmo efeito, como se
cada transação estivesse sendo executada
uma após a outra.
A tabela a seguir mostra quais situações podem
ocorrer em cada um dos níveis de isolamento:
Nível
Read Uncommitted
Dirty
Reads
Possível
Read CommitImpossível
ted
Repeatable
Read
NonPhantom
Repeatable
Read
Reads
Possível
Possível
Possível
Possível
Impossível Impossível
Possível
Resumo – tópicos de Banco de Dados I
Serializable
prof. Edilberto Silva
Impossível Impossível Impossível
Níveis de ABSTRAÇÃO de DADOS
•
Sistema BD deve prover uma visão abstrata de dados para os usuários, isolando, desta
forma, detalhes mais internos do BD.
•
Nível físico ou Interno descreve como os dados estão realmente armazenados,
englobando estruturas complexas de baixo nível.
•
Nível conceitual ou lógico “Esquema
Conceitual”, descreve quais os dados estão
armazenados e seus relacionamentos. descrito
através de estruturas relativamente simples
•
Nível de visões do usuário ou nível externo:, descrevendo partes do BD que serão visualizadas pelos usuários de acordo com suas
necessidades. Subconjunto de dados do BD,
sem que exista a necessidade de estarem armazenados no BD. Provê a independência lógica e física dos dados. Independência lógica
possui a capacidade de mudar o esquema conceitual sem a necessidade de modificar programas da aplicação e esquemas externos, enquanto que a física tem a capacidade de mudar
o esquema interno sem a necessidade de alterar os esquemas conceitual e externo.
http://edilms.eti.br
tamento sis- ais. Valores nulos devem ter um
temático de tratamento diferente de “valores
valores nulos em branco”.
estrutura do banco de dados (domínios, campos, tabelas, regras
catálogo rela- de integridade, índices, etc) deve
cional ativo: estar disponível em tabelas (também referenciadas como catálogo).
capacidade de manipular as informações do banco de dados em
atualização de
grupos de registros, ou seja, ser
alto-nível
capaz de inserir, alterar e excluir
vários registros ao mesmo tempo.
sublinguagem de
dados abrangente
Pelo menos uma linguagem deve
ser suportada, para que possa
manipular a estrutura do banco de
dados (como criação e alteração
de tabelas), assim como extrair,
inserir, atualizar ou excluir dados
Se houve modificação na forma
como os dados estão armazenaindependência dos fisicamente, nenhuma alterafísica
ção deve ser necessárias nas
aplicações que fazem uso do banco
alteração na estrutura do banco
de dados como inclusão ou excluindependência
são campos da tabela ou alteralógica
ção no relacionamento entre tabelas não deve afetar os aplicativo
deve ser capaz de efetuar alteraatualização de ções, exclusões e inclusões nelas
visões
e devem ser repassadas para
tabelas originais
(integridade de entidade, integridade referencial, restrições,etc)
independência precisam ser estabelecidas dentro
de integridade do catálogo ou dicionário de dados, e ser totalmente independentes da lógica dos aplicativos.
SGBD´s podem ser distribuídos
em diversas plataformas que se
independência
encontrem interligados em rede distribuide.Isto não pode afetar a
ção
funcionalidade do sistema e dos
aplicativos
12 Regras de Codd
Regra das
informações
em tabelas
devem ser apresentadas como
relações (tabelas formadas por
linhas e colunas). Vinculo entre
tabelas por campos comuns tanto
aos dados quanto aos metadados
Regra de acesso garantido:
o método de referência deve ser o
nome da tabela, o valor da chave
primária e o nome do campo/coluna.
Regra de tra-
permita a distinção de dados re-
nãosubversiva
O sistema deve ser capaz de impedir qualquer usuário ou programador de transgredir os mecanismos de segurança, regras de integridade do banco de dados e restrições,
Conceitos
Cardinalidade x Modalidade
•
Cardinalidade é a especificação do
número de ocorrências de um item que pode
ser relacionado com o número de ocorrências
de outro item; (1:1, 1:N, N:M). É o número de
Resumo – tópicos de Banco de Dados I
prof. Edilberto Silva
entidades ao qual outra entidade pode estar
associada via um relacionamento
•
Modalidade ou totalidade indica se
um item precisa ou não participar em um relacionamento; (obrigatório ou opcional)
•
Atributos são propriedades usadas
para descrever uma entidade. Mapeia um conjunto de entidades em um domínio.
o "Funções que levam um ponto de um
conjunto de entidades a um ponto de um
conjunto - de valores (ou seja, registram o
que se deseja descrever sobre uma entidade".( Chen:)
•
Relação conjunto de n-tuplas ou tuplas onde cada tupla t é uma lista ordenada de
n valores v t=(v1,v2,vn) onde cada elemento Vn
é um elemento do domínio de atributos ou tem
valor especial “nulo”.
o Os SGBD´s relacionais representam as
relações por meio de tabelas
o "Atributo é uma função que mapeia um
conjunto de entidades em um domínio".(
Korth:)
Tipos de Atributo
o Simples com um único núcleo. Não
se dividem em partes. Ex.: idade, iniciais
o As tuplas de uma relação não são ordenadas
o
o Compostos compostos (com n atributos simples, exemplo: Endereco = rua+numero+bairro+cidade+UF)
Os atributos não são relacionados
o Cada tupla contém apenas um valor para cada atributo (1Fnormal)
•
o Monovalorado somente um valor para cada instância. Ex: Nome, Data Nascimento
Relacionamento
o "É uma
des".(Korth)
associação
entre
entida-
o Multivalorado Vários valores para
cada instância. Ex: Dependentes
o "É uma estrutura abstrata que indica as
associações entre elementos de um conjunto de entidades e elementos de outro
conjunto de entidades".(Betzer)
o Derivados São obtidos a partir de valores de outra entidade ou atributos. Ex:
TempoEmpresa (data atual – dataentrada
na entidade contrato), idade (pela data de
aniversário
o Identificado a chave estrangeira participa da chave primária na tabela filha
o Não-Identificado a chave estrangeira
é um campo comum e não participa da
chave primária na tabela filha
•
Conjunto De Relacionamentos é um
conjunto formado por relacionamentos de um
mesmo tipo.
o cliente e empréstimo:. O conjunto de relacionamentos devedor denota a associação entre clientes e empréstimos bancários
contraídos pelo cliente.
•
Instância Os dados atuais armazenados no BD em um momento particular. Também chamado estado do banco de dados.
http://edilms.eti.br
o Nulo quando não se apresenta valores para o mesmo
•
Domínio Conjunto de valores permissíveis de um determinado atributo. Tipo de
dado (int, caracter, {AM,DF, SP}
•
Independência física Capacidade de
se modificar o esquema físico sem alterar os
programas de aplicação
•
Independência lógica Capacidade de
se modificar o esquema conceitual sem alterar
os programas de aplicação
Chaves
•
Entidades são objetos ou "coisas" do
mundo real que possuem uma existência independente e são de interesse para uma determinada aplicação.
•
SuperChave Conjunto de um ou
mais atributos que, tomados em conjunto, permite identificar unicamente uma entidade no
conjunto de entidades
o "Uma entidade é uma representação
abstrata de um objeto do mundo real um
ser, um fato, uma coisa, um organismo social, etc)." (Setzer)
•
Chaves candidatas Superchaves
menores possíveis, em que nenhum subconjunto próprio é superchave. Seja K um conjunto de
atributos da variável de relação R. Então, K é
uma chave candidata para R se e somente se
ela possui as seguintes propriedades:
o Uma entidade é um objeto que existe e
é distinguível de outros objetos. (Korth)
o Entidade Forte (Dominante) Aquela
que possui chave primária
o Entidade fraca (subordinada ) Aquela
que sua chave primária é composta da
chave primária da entidade forte e de atributo identificador (chave candidata) da entidade fraca
o
Unicidade nenhum valor válido de R contém duas tuplas diferentes
com o mesmo valor para K
o
Irredutibilidade nenhum subconjunto próprio de K tem a propriedade de unicidade
•
Chave Primária Chave candidata escolhida pelo projetista do banco de dados como
mecanismo principal para a identificação de en-
Resumo – tópicos de Banco de Dados I
prof. Edilberto Silva
tidades no conjunto de entidades (chave primária)
•
Chave Alternativa Chave candidata
não escolhida para ser chave primária
•
Chave Estrangeira Conjunto de atributos de uma relação R2 cujos valores devem
obrigatoriamente corresponder a valores de alguma chave candidata de alguma variável de
relação R1
•
Chave Substituta (surrogate key) ou artificial Chave criada artificialmente para identificar uma entidade não tendo nenhum significado no negócio
http://edilms.eti.br
Formas Normais
•
(1FN) Primeira Forma Normal Uma
relação está na primeira forma normal (1FN) se
não possuir grupos de repetição ( ou seja, se
todos atributos na relação estiveram baseados
em domínios simples ).
o Uma relação está na 1FN se somente
todos os domínios básicos contiverem somente valores atômicos (não contiver grupos repetitivos). Para atingir esta forma
normal devemos eliminar os grupos de repetição.
o Procedimental Específica quais dados são desejados e como chegar a eles
•
(2FN) Segunda Forma Normal Uma
relação R está na 2FN se e somente se ela estiver na 1FN e todos os atributos não chave forem totalmente dependentes da chave primária
(dependente de toda a chave e não apenas de
parte dela)
o Não procedimental Especifica quais
dados são desejados, sem especificar como chegar a eles
o Uma relação está na 2ª forma normal
se está na 1ª FN e os atributos que não são
chave dependem da totalidade da chave.
Linguagens
•
DML (Data Manipulation Language)
o
permite ao usuário definir tabelas novas e elementos associados. A
maioria dos bancos de dados de SQL
comerciais tem extensões proprietárias
no DDL.
•
(3FN) Terceira Forma Normal Uma
relação R está na 3FN se somente estiver na
2FN e todos os atributos não chave forem dependentes não transitivos da chave primária
(cada atributo for funcionalmente dependente
apenas dos atributos componentes da chave
primária ou se todos os seus atributos não chave forem independentes entre si
o
CREATE cria um objeto (uma
Tabela, por exemplo) dentro do base de
dados;
o Uma relação está na Terceira Forma
Normal se estiver na 2FN e todos os atributos não chave forem dependentes não
transitivos da chave primária”
•
DDL (Data Definition Language)
Linguagem de Definição de Dados).
-
Exemplos:
o
DROP apaga um objeto do
banco de dados.
o
ALTER TABLE;
•
DCL (Data Control Language) – é a linguagem de controle de dados, usada pelo DBA
para controlar o acesso aos dados pelos usuários. Possui comandos de atribuição e remoção
de privilégios. Exemplos: Grant, Revoke, “Profile”
Restrições de Integridade
•
De Domínio especifica que, para um
certo atributo A de uma relação, todo valor associado a A deve ser atômico e pertencente ao
domínio deste atributo
•
Referencial que se uma tupla T2 de
uma relação R2 referencia uma tupla T1 de
uma relação R1,então a tupla T1 deve existir ou
ser nula
•
De Vazio (nulo) Se o valor de um atributo pode ou não ser nulo
•
De Chave especifica que nenhuma
das tuplas de uma relação pode possuir valor
nulo para nenhum dos atributos que formam
sua chave primária
•
(BCNF) Forma Normal Boyce-Codd Uma relação está na FNBC se e só se todo o
determinante da relação for uma chave candidata.
REFERÊNCIAS BIBLIOGRÁFICAS .
DATE, C, J. Introdução Sistemas de Bancos de Dados.
7ª edição, Rio de Janeiro - RJ; Editora Campus
1999.
HEUSER, Carlos Alberto. Projeto de banco de dados,
Imprenta: 3ª ed. Porto Alegre:Sagra Luzzatto,
2000
SILBERSCHARTZ,
Abraham;
KORTH,
Henry;
SUDARSHAN, S. Sistemas de Banco de Dados.
3º edição, São Paulo: Makron Books 1999
Atualizado em: 15/dez/2008
Download

Banco de Dados