sin5001 – organização de sistemas de informação · sistemas de informação ... são usados...

68
SIN5001 – Organização de Sistemas de Informação Prof. Luciano Antonio Digiampietri www.each.usp.br/digiampietri [email protected]

Upload: haliem

Post on 26-Dec-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

SIN5001 – Organização de Sistemas de Informação

Prof. Luciano Antonio Digiampietriwww.each.usp.br/digiampietri

[email protected]

Page 2: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Conteúdo

� Detalhamento Parte 3 do trabalho

� Bancos de Dados (22/11/2012)

� Inteligência Computacional (29/11/2012)

� Mineração de Dados (06/12/2012)

Page 3: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Bancos de Dados

Material adaptado das notas de aula do Prof. Dr. José de Jésus Pérez Alcázar

22/11/2012

Page 4: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Bancos de Dados� Introdução� SGBD� Modelo de Dados

� Modelo Entidade Relacionamento� Modelo Relacional� Modelo Relacional

� Normalização� Projeto de BD� A linguagem SQL

Page 5: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Introdução� Banco de dados (ou base de dados), é um

conjunto de registros dispostos em estrutura regular que possibilita a organização dos mesmos e produção de informação.

� Um banco de dados é usualmente mantido e acessado por meio de um Sistema Gerenciador de Banco de Dados (SGBD).

Page 6: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Dado x Informação

UmaUma percepçãopercepção dodo mundomundo realreal podepode serser vistavista comocomo umaumasériesérie dede fenômenosfenômenos diferentesdiferentes queque algumasalgumas vezesvezes têmtêmalgumaalguma relaçãorelação entreentre sisi..

DadoDado A A descriçãodescrição destesdestes fenômenosfenômenos..AtravésAtravés deles deles obtemosobtemos informaçãoinformação do do mundomundo realreal

InformaçãoInformação QualquerQualquer aumentoaumento do do conhecimentoconhecimentoobtidoobtido atravésatravés dada interpretaçãointerpretação e e usouso de de

dados.dados.

INTERPRETAÇÃO INTERPRETAÇÃO E USOE USO

INFORMAÇÃOINFORMAÇÃODADODADO

Page 7: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Sistema de Informação� Um Sistema de Informação é um conjunto de

elementos que interagem entre si. Estes elementos são de natureza diversa e normalmente incluem:� Conjunto de equipamentos computacionais (hardware)� Recursos humanos que interajem com o sistema

(pessoas)(pessoas)� Os dados que são introduzidos no sistema (dados)� O conjunto de programas que incluem a interface com

as pessoas e o processamento dos dados (software).� Tipicamente temos processos como uma combinação

de ações de pessoas utilizando softwares (que rodam sobre hardwares) em cima dos dados para gerar resultados/informações.

Page 8: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Usuários de Bancos de Dados� Diferentes classes de usuários:

� Administrador do BD � Projetista de BD� Programador de aplicações� Usuário final� Usuário final

Page 9: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Usuários de Bancos de Dados� Administrador do BD

� Pessoa com o controle do sistema, responsável por:� Mudanças na organização física e lógica;� Garante diferentes tipos de acesso por parte dos usuários;� Define uma estratégia de cópias de segurança, � Define uma estratégia de cópias de segurança,

recuperação, etc.

� Projetista de BD� É o responsável pela identificação dos dados que

serão armazenados e pelo projeto das estruturas apropriadas para representar e armazenar estes dados.

Page 10: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Usuários de Bancos de Dados� Programador de aplicações

� Escreve programas que utilizam o BD em C, C++, Java, php, etc. Estes programas podem simplesmente consultar o banco de dados ou executar funções mais elaboradas para facilitar a descoberta de conhecimento.descoberta de conhecimento.

� Usuário final�� AcessaAcessa o BD, o BD, tipicamentetipicamente atravésatravés de um de um programaprograma

interativointerativo ((ouou fazendofazendo consultasconsultas diretasdiretas emem um um linguagemlinguagem de de consultaconsulta [[parte parte integranteintegrante do do sistemasistema]).]).

Page 11: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Exemplo de um Banco de Dados

Page 12: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Vantagens do uso de BDs� Podem ser aplicadas restrições de segurança.� O administrador tem controle completo sobre os dados;

pode:� Garantir que as únicas vias de acesso sejam através dos

canais adequados.� Definir a execução de verificações de acesso quando sejam

acessados dados sensíveis (verificação X tipo de acesso)acessados dados sensíveis (verificação X tipo de acesso)� A integridade pode ser mantida:

� Integridade� Dados corretos.� Evitar redundâncias:

� Redundância � Possíveis dados incorretos� Outros tipos de inconsistência podem ser evitadas:

� Exemplos:� Empregado que trabalha 48 horas por dia � Salário de um empregado > Salário máximo

Page 13: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Desvantagens do uso de BDs

� Vulnerabilidade � Natureza centralizada� Generalidade que um SGBD oferece para definir e

processar dados:� Os custos de hardware, software e programadores são

mais altos.

� Uso de arquivos ao invés de BDs pode ser vantajoso quando:� O BD e aplicações são simples, bem definidas e não se

espera que mudem;� Altos requerimentos de eficiência em tempo real;� Requerimentos de acesso mono-usuário.

Page 14: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Bancos de Dados� Introdução� SGBD� Modelo de Dados

� Modelo Entidade Relacionamento� Modelo Relacional� Modelo Relacional

� Normalização� Projeto de BD� A linguagem SQL

Page 15: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Sistema Gerenciador de Bancos de Dados (SGBD)

�� UmUm SistemaSistema dede GerenciamentoGerenciamento dede BancosBancos dedeDadosDados éé umauma coleçãocoleção dede programasprogramas quequefacilitafacilita aa criaçãocriação ee manutençãomanutenção dede bancosbancos dededadosdados..dadosdados..

Page 16: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Arquitetura típica de um SGBD

Page 17: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Bancos de Dados� Introdução� SGBD� Modelo de Dados

� Modelo Entidade Relacionamento� Modelo Relacional� Modelo Relacional

� Normalização� Projeto de BD� A linguagem SQL

Page 18: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Modelo de DadosCONCEITOCONCEITOÉ um É um formalismoformalismo utilizadoutilizado parapara descreverdescrever a a organizaçãoorganização lógicalógica dos dos dados dados correspondentecorrespondente a a umauma determinadadeterminada realidaderealidade (UNIVERSO (UNIVERSO DE DISCURSO)DE DISCURSO)

A A representaçãorepresentação de de umauma determinadadeterminada parte parte dada realidaderealidade de de acordoacordocon um con um modelomodelo de dados é de dados é chamadochamado ESQUEMA.ESQUEMA.con um con um modelomodelo de dados é de dados é chamadochamado ESQUEMA.ESQUEMA.

UNIVERSO UNIVERSO DEDE

DISCURSODISCURSOESQUEMAESQUEMA

Modelo de DadosModelo de Dados

(Abstração)(Abstração)

•• Un Un modelomodelo de dados define as de dados define as regrasregras de de acordoacordo com as com as quaisquaisosos dados dados sãosão estruturadosestruturados..

•• EstaEsta definiçãodefinição incluiinclui nãonão somentesomente a a estruturaestrutura masmas tambémtambémregrasregras e e restriçõesrestrições..

Page 19: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Componentes básicos� ESTRUTURAS

� Não existe um consenso geral sobre que conceitos devem ser utilizados como base para definir a estrutura dos dados.� Modelo relacional: relações e domínios� Modelo de rede: registros e enlaces� Modelo orientado a objetos: classes e objetos

� Na prática, entretanto, três conceitos são difundidos amplamente como primitivas básicas de modelagem:amplamente como primitivas básicas de modelagem:� Entidades� Relacionamentos� Atributos

� A aplicação destes conceitos é geralmente feita através de três mecanismos de abstração:� Classificação� Agregação� Generalização

Page 20: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Abstração de Dados� Abstração é um processo mental através do qual se concentra

nos aspectos relevantes de um conjunto de objetos sem considerar suas diferenças.� Abstrações de dados constituem um modelo bastante simples de

representar a realidade.� São usados como mecanismos básicos de modelagem por

vários modelos chamados conceituais.

� MECANISMOS DE ABSTRAÇÃO

� CLASSIFICAÇÃO� É um mecanismo de abstração usado para definir um conceito

como uma classe de objetos do mundo real caracterizados por propriedades comuns.

� Exemplo:� bicicletas = {bicicleta vermelha, a bicicleta de Tomás, etc.}

Page 21: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Abstração de Dados� Agregação

� É um mecanismo de abstração através do qual uma nova classe de objetos é definida a partir de outras classes que representam suas partes componentes.

� Por exemplo, uma classe carro pode ser definida como um agregado de Pneus, Motor, etc

� Generalização� É um mecanismo de abstração através do qual um conjunto

de classes de objetos chamados de categorias se relacionam com outra que é considerada uma classe genérica de objetos de nível mais alto.

� Por exemplo: Pessoa é uma abstração de Alunos e Docentes (ou seja, todo Aluno e todo Docente é uma Pessoa).

� Numa generalização, todas as “propriedades” (abstrações) definidas para a classe genérica são herdadas automáticamente por todas suas categorias (sub-classes).

Page 22: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Entidade, classes e atributos� Entidades são elementos do mundo real.� Tipos de entidades ou classes são

modelos/abstrações baseadas em entidades.� Um atributo é uma propriedade associada a un

determinado tipo de entidade (classe). determinado tipo de entidade (classe). � Uma entidade é descrita em termos dos valores de

seus atributos.� Uma classe (tipo de entidade) corresponde a uma

agregação de atributos.

Page 23: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Associações entre entidades� Uma associação representa relacionamentos significativos

entre entidades.

� Relacionamentos estabelecidos por associações podem ser:� um-para-um (1:1)� um-para-um (1:1)

� uma Pessoa é casada com outra Pessoa

� um-para-muitos (1:N)� Um Departamento empregra um ou mais Pessoas

� muitos-para-um (N:1)� Uma ou mais Pessoas são empregradas por um Departamento

� muitos-para-muitos (M:N)� Um Professor tem vários Alunos e cada Aluno tem vários Professores

Page 24: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Bancos de Dados� Introdução� SGBD� Modelo de Dados

� Modelo Entidade Relacionamento� Modelo Relacional� Modelo Relacional

� Normalização� Projeto de BD� A linguagem SQL

Page 25: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Modelo Entidade Relacionamento� Introduzido por Peter Chen em 1976

� Independente dos aspectos de implementação� Conceitos Básicos:

� Entidades� Relacionamentos� Atributos

� Extensões:� Extensões:� Hierarquias de generalização� Hierarquias de especialização� Atributos compostos� Identificadores

� Possui uma notação gráfica bastante concisa e de fácil entendimento: � Diagrama Entidade Relacionamento

Page 26: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

MER – Conceitos Básicos� Tipos de Entidade: são classes de objetos relevantes para a

aplicação

� Tipos de relacionamentos: são associações entre classes de objetos (tipos de entidades)

� Atributos: são classes de valores associados aos tipos de entidades e aos Relacionamentos para descrever suas

*/(0,5)entidades e aos Relacionamentos para descrever suas propriedades.

Monovalorado

Multivalorado

Tipo de Entidade

Tipo de Relacionamento Atribut

os

*/(0,5)

DIAGRAMA E.R.

FORNECEDORES

FORNECEM

PEÇAS

Nome Endereço

Quantidade

Código

PreçoNome

Page 27: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Atributos compostos

Uma hierarquia de atributos compostos

Page 28: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Exemplo de Relacionamento

Page 29: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Cardinalidade e Participação nosRelacionamentos e Atributos

� A cardinalidade dos relacionamentos entre as Entidades ou dos atributos de uma Entidade é definida em termos de dois parâmetros:

� CARD_MIN Indica a cardinalidade mínima� CARD_MAX Indica a cardinalidade máxima

� Cardinalidade dos atributos� CARD_MIN(A,E) = 0 Atributo opcional� CARD_MIN(A,E) > 0 Atributo obrigatório� CARD_MAX(A,E) =1 Atributo monovalorado� CARD_MAX(A,E) > 1 Atributo multivalorado

Page 30: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Cardinalidade e Participação nosRelacionamentos e Atributos

� Cardinalidade dos tipos de relacionamentos� CARD_MAX(E,R) =N “Muitos” (N>1)� CARD_MAX(E,R) = 1 “Um”

� Define as 4 combinações: (1:1),(1:N),(N:1),(M:N)� CARD_MIN(E,R) = 0 Participação opcional� CARD_MIN(E,R) = 1 Participação obrigatória

Page 31: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Cardinalidade e Participação nosRelacionamentos e Atributos� Notação Gráfica

A R B

A R B

A R B

A R B

( 1 : 1 )

( M : N )

A R B

A R B

A R B

A R B

A

Opcional

( 1 : N )

( N : 1 )

Parcial

Total

A

Obrigatório

Atributos:

Page 32: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Cardinalidade e Participação nosRelacionamentos e Atributos� Notação Alternativa

Page 33: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Cardinalidade e Participação nosRelacionamentos e Atributos� Notação Alternativa

Page 34: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Hierarquia de Generalização

E

EEE

dd significa disjuntas

Duas linhas significam totalidade. União das categorias igual a E

Formalmente, um tipo de Entidade E é uma generalização dos tipos de entidades E1,E2,...,En, (inversamente, cada Ei é uma categoria de E) se E = E1 ∪ E2 ∪ ... ∪ En e E1 ∩ E2 ∩ ... ∩ En = ∅Hierarquia total (Exclusiva)

EnE2E1 ...

Page 35: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Exemplo 1

Page 36: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Exemplo 2

Page 37: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Bancos de Dados� Introdução� SGBD� Modelo de Dados

� Modelo Entidade Relacionamento� Modelo Relacional� Modelo Relacional

� Normalização� Projeto de BD� A linguagem SQL

Page 38: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Modelo Relacional� O modelo relacional é o modelo de dados usado em

bancos de dados relacionais. Baseia-se no princípio de que todos os dados estão guardados em tabelas. Toda sua definição é teórica e baseada na lógica de predicados e na teoria dos conjuntos.

� O conceito foi criado por Edgar Frank Codd em 1970, � O conceito foi criado por Edgar Frank Codd em 1970, sendo descrito no artigo "Relational Model of Data for Large Shared Data Banks". Na verdade, o modelo relacional foi o primeiro modelo de dados descrito teoricamente, os bancos de dados já existentes passaram então a ser conhecidos como (modelo hierárquico, modelo em rede ou Codasyl e modelo de listas invertidas).� A partir deste modelo surgiram os bancos de dados

relacionais (que são os mais usados atualmente).

Page 39: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Conceitos� Um banco de dados relacional consiste numa

coleção de tabelas cada uma associada a um único nome.

Tabela semelhante arquivo sequencialLinhas � registros � tuplasLinhas � registros � tuplasColunas � campos � atributos

� Uma tabela também tem correspondência com o conceito matemático de relação.

� Os atributos de cada tabela tomam valores de conjuntos chamados de domínios.

� Estes valores são atômicos ou indivisíveis

Page 40: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Conceitos

Page 41: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Exemplo dos Conceitos

Page 42: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Conceitos

Page 43: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Exemplo

Page 44: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Chaves

Page 45: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Chaves

Page 46: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Exemplos de Superchaves

Page 47: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Restrição de Integridade Referencial

Page 48: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Exemplo – Integridade Referencial

Page 49: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Restrições inerentes ao modelo� Regra da 1ª NF (1ª Forma Normal, veremos a

seguir).

� A ordem das tuplas não é significativa.

� Regra da tupla única.

� A ordem dos atributos não é significativa.

Page 50: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Bancos de Dados� Introdução� SGBD� Modelo de Dados

� Modelo Entidade Relacionamento� Modelo Relacional� Modelo Relacional

� Normalização� Projeto de BD� A linguagem SQL

Page 51: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

NormalizaçãoIntroduzida por Codd no seu artigo inicial 1970.

� 1972 Foram expostos com detalhes: as 2ª e 3ª FNs� 1974 FNBC� 1977 Fagin estabelece. 4a. FN� 1979 Fagin estabelece 5a FN

� Processo passo a passo reversível, de mudar uma determinada relação por sucessivas coleções de relações, as quais tenham progressivamente relações mais simples e regulares (conceito inicial).

� Este processo segue:Forma não normalizada ����1ª FN ���� 2ª FN ���� 3ª FN ���� FNBC ���� 4ª FN ����

5ª FN

Page 52: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Normalização� OBJETIVO

� Evitar anomalias de inserção, atualização e remoção.

� UTILIZAÇÃO� Como ferramenta de projeto� Como ferramenta de projeto� Como validação do modelo conceitual

� Dois processos diferentes para chegar num esquema relacional normalizado� Decomposição� Síntese

Page 53: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Primeira Forma Normal

� Um esquema relacional R está na 1ª FN se todos os seus atributos forem atômicos (simples) e monovalorados, ou seja, não são permitidos atributos multivalorados, atributos compostos ou atributos multivalorados, atributos compostos ou atributos multivalorados compostos.

� Isto é intrínseco no modelo relacional.

Page 54: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Segunda Forma Normal� Para estar na 2ª FN uma tabela deve

� estar na 1ª FN e� todos os seus atributos que não façam parte de

alguma chave candidata devem ser determinados unicamente por qualquer chave candidata da unicamente por qualquer chave candidata da tabela.

� Se todas as chaves candidatas de uma tabela contiverem somente 1 atributo, esta já se encontra na 2ª FN

Page 55: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Segunda Forma Normal� Exemplo de problema:

� MATRICULADOS = {NumUSP, CodDisciplina, NomeDaDisciplina}

� O campo NomeDaDisciplina é determinado � O campo NomeDaDisciplina é determinado apenas pelo CodDisciplina, não sendo vinculado ao NumUSP.

Page 56: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Segunda Forma Normal� Exemplo de problema:

� MATRICULADOS = {NumUSP, CodDisciplina, NomeDaDisciplina}

� O campo NomeDaDisciplina é determinado � O campo NomeDaDisciplina é determinado apenas pelo CodDisciplina, não sendo vinculado ao NumUSP.

� Forma normalizada:� MATRICULADOS = {NumUSP, CodDisciplina}� DISCIPLINAS = {CodDisciplina, NomeDaDisciplina}

Page 57: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Terceira Forma Normal� A terceira forma normal (3ª FN) exige que a tabela

esteja em 2ª FN e que todos os atributos que não são chave sejam mutuamente independentes, isto é, que não existam funções que definam um ao outro. Portanto, sempre a chave por inteiro deve definir toda a tabela.sempre a chave por inteiro deve definir toda a tabela.� Isto exige que atributos que não dependem diretamente

da chave sejam separados em uma tabela distinta.� Em outras palavras, caso exista um ou mais atributos

que dependam de um atributo não-chave, estes atributos deverão ser extraídos para outra tabela.

Page 58: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Terceira Forma Normal� Exemplo de problema:ITEM_VENDA = {ID,CodProduto,NomeProduto,PrecoUnitario,Quantitade,

Total}

Resolvendo 2ª FN:ITEM_VENDA = ITEM_VENDA =

{ID,CodProduto,PrecoUnitario,Quantitade,Total}PRODUTO = {CodProduto,NomeProduto}

Page 59: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Terceira Forma Normal� Exemplo de problema:ITEM_VENDA = {ID,CodProduto,NomeProduto,PrecoUnitario,Quantitade,

Total}

Resolvendo 2ª FN:ITEM_VENDA = ITEM_VENDA =

{ID,CodProduto,PrecoUnitario,Quantitade,Total}PRODUTO = {CodProduto,NomeProduto}

Problema: Total = Quantidade * PrecoUnitario (o campo Total é determinado por um função de outros campos).

Page 60: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Terceira Forma Normal� Exemplo de problema:ITEM_VENDA = {ID,CodProduto,NomeProduto,PrecoUnitario,Quantitade,

Total}

Resolvendo 2ª FN:ITEM_VENDA = {ID,CodProduto,PrecoUnitario,Quantitade,Total}PRODUTO = {CodProduto,NomeProduto}PRODUTO = {CodProduto,NomeProduto}

Resolvendo 3ª FN:ITEM_VENDA = {ID,CodProduto,PrecoUnitario,Quantitade,Total} (excluir

campo)PRODUTO = {CodProduto,NomeProduto}

OU:ITEM_VENDA = {ID,CodProduto,PrecoUnitario,Quantitade}PRODUTO = {CodProduto,NomeProduto}TOTAIS = {PrecoUnitario,Quantidade,Total}

Page 61: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Terceira Forma Normal� Observação: muitas pessoas confundem a 2ª e

3ª FNs. Entretanto, a 2ª FN proibe que determinados atributos dependam de parte de uma chave composta, enquanto que a 3ª FN proíbe que determinados atributos dependam de proíbe que determinados atributos dependam de atributos não-chave.

Page 62: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Forma Normal Boyce - Codd� Definição que engloba as outras formas normais,

e define que uma tabela está em FNBC se, e somente se, todo determinante funcional for em relação a uma chave candidata.� Na prática, uma tabela está em FNBC se estiver � Na prática, uma tabela está em FNBC se estiver

em 3ª FN e não existir dependência funcional dentro da chave primária.

� Ou seja, se todos os atributos são funcionalmente dependentes da chave, de toda a chave e nada mais do que a chave. Ou, em outras palavras, todos os determinantes são chaves candidatas.

Page 63: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Forma Normal Boyce - Codd� Exemplo:

� MATRICULAS = {Aluno,Curso,Instrutor}� Onde um aluno pode estar em mais de um curso, cada

instrutor pode ter mais de um aluno porém cada instrutor dará um único curso.

� Sendo assim:� Sendo assim:� {Aluno,Curso} � Instrutor E� {Instrutor} � Curso

� Três formas de decompor:� {Aluno, Instrutor} e {Aluno, Curso}� {Instrutor,Curso} e {Curso, Aluno}� {Instrutor,Curso} e {Instrutor, Aluno}

Page 64: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Curiosidade:� Há problemas com a seguinte tabela?Endereço={ID,Cidade,Bairro,Logradouro,Número,C

EP}

Page 65: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Curiosidade:� Há problemas com a seguinte tabela?Endereço={ID,Cidade,Bairro,Logradouro,Número,C

EP}

� Se sim, como resolver?� Se sim, como resolver?

Page 66: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Curiosidade:� Há problemas com a seguinte tabela?Endereço={ID,Cidade,Bairro,Logradouro,Número,C

EP}

� Se sim, como resolver?� Se sim, como resolver?

� Vale a pena normalizar?

Page 67: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Bancos de Dados� Introdução� SGBD� Modelo de Dados

� Modelo Entidade Relacionamento� Modelo Relacional� Modelo Relacional

� Normalização� Projeto de BD� A linguagem SQL

Page 68: SIN5001 – Organização de Sistemas de Informação · Sistemas de Informação ... São usados como mecanismos básicos de modelagem por ... {bicicleta vermelha, a bicicleta de

Referências Principais� Elmasri, R.; Navathe, S.B. “Fundamentals of Database

Systems”, Addison Wesley Pub., 4th Edition, 2003.

� Korth, H. F.; Silberschatz, A. - Fundamentos de Bancos de Dados, 3ª Edição, McGraw-Hill, São Paulo, 1998.

� Date, C.J. - Introdução a Sistemas de Bancos de Dados, Tradução da 7ª Edição, 2000, Editora Campus.

� Ramakrishnan, R. - Database Management Systems, McGraw-Hill, 1999.