Pesquisar este blog

domingo, 19 de maio de 2013

Oracle - Basico


Banco de dados Oracle:

 Fornecer ao leitor uma visão geral dos conceitos de banco de dados e o Oracle.



Visão geral

O objetivo de um banco de dados é armazenar e recuperar informações relacionadas. Um servidor de banco de dados é a chave da solução do problema de gerenciamento de informações.

Em geral o servidor gerencia uma grande quantidade de dados em um ambiente multiusuário onde vários usuários podem concorrer ao acesso a um mesmo dado.

Tudo isso ocorre enquanto o banco entrega dados em alto desempenho. Um banco de dados Oracle tem estruturas lógicas e estruturas físicas.

Separadas assim o armazenamento dos dados podem ser gerenciados sem afetar o acesso às estruturas lógicas de armazenamento.

Estruturas lógicas de banco de dados

As estruturas lógicas do Oracle incluem schemas, data blocks, extens, segments e tablespaces.

Schemas e objetos de schemas

Schema é uma coleção de objetos de um banco de dados.

Um schema pertence a um usuário do banco de dados e tem o mesmo nome do usuário. Objetos de um schema são estruturas lógicas que se referem diretamente aos dados do banco. Objetos de um schema incluem estruturas como tables (tabelas), views (visões de tabelas) e index (índices de tabelas).

Não há relação entre tablespaces e schema. Objetos do mesmo schema podem estar em diferentes tablespaces diferente tablespaces podem conter objetos de diferentes schemas.

Tables (tabelas)

Uma tabela é uma unidade básica de armazenamento do banco de dados Oracle. Tabelas do banco de dados possuem todos os dados acessíveis ao usuário.

Cada tabela contém um determinado número de linhas e colunas. O Oracle armazena em cada linha de uma tabela no máximo 256 colunas. Uma tabela que contenha dados sobre empregados pode conter uma coluna chamada numero_do_empregado e cada linha desta coluna é um número de determinado empregado.

Views (Visões de tabelas)

Views são apresentações customizadas de dados de uma ou mais tabelas ou outras views. Um view pode ser considerada uma query de  armazenamento. Views não contém dados. Os dados de uma view derivam das tabelas bases da view.

Elas são referenciadas como “base tables” (tabelas base).

Como as tabelas, as views podem ser selecionadas, atualizadas, inseridas e eliminadas. Com algumas restrições. Todas as operações efetuadas em uma view afetam as tabelas base.

Views proporcionam um nível adicional de segurança restringido acesso a determinados conjunto de linhas e colunas de uma tabela. Elas também escondem a complexidade dos dados armazenados e a complexidade das querys.

Index (Índice)

Índices são estruturas associadas com tabelas. Índices podem ser criados para melhorar o desempenho da recuperação de dados. Como um índice de um livro permite que você acesse rapidamente as informações contidas neste livro os índices do Oracle permitem que os dados sejam acessados mais rapidamente.

Quando processa uma requisição o Oracle utiliza um ou todos os índices disponíveis para localizar as linhas requisitadas de forma eficiente. Índices são especificamente úteis quando aplicações requisitam dados de uma tabela com número de linhas ou quando requisita uma linha específica.

Índices são criados com uma ou mais colunas de uma tabela. Depois de criado o índice é automaticamente mantido e usado pelo Oracle. Mudanças realizadas na tabela são automaticamente incorporadas aos índices com completa transparência para os usuários.

Você pode particionar índices.

Cluster (Agrupamento)

Cluster é um grupo de uma ou mais tabelas fisicamente armazenados juntos. Isto ocorre porque elas compartilham colunas comuns e freqüentemente as usam juntas.

Por serem fisicamente armazenadas juntas o acesso a disco é melhorado.

Como os índices os clusters não afetam o desenvolvimento da aplicação. Se uma tabela é parte ou não de um cluster isto é transparente para o usuário e para a aplicação. Dados armazenados em uma tabela de um cluster são acessados da mesma forma que dados de uma tabela não clusterizada.

Data blocks, extents e segments.

As estruturas lógicas de armazenamento incluem data blocks, extents e segments. Estes objetos permitem ao Oracle ter um grande controle do espaço em disco.

Data blocks (Bloco de dados)

Num nível mais alto de granulidade o Oracle armazena dados nos data blocks.

Um data block corresponde a um número específico de bytes no espaço físico do banco de dados no disco. O tamanho padrão de um data block é especificado no parâmetro DB_BLOCK_SIZE. Adicionalmente você pode especificar mais de cinco tamanhos de blocos. O banco de dados usa e aloca o espaço livre do banco em data blocks.

Extents (Extensões)

O próximo nível lógico de armazenamento é o extent. Um extent é um conjunto contínuo de data blocks obtido em uma alocação individual usada para armazenar um tipo específico de informação.

Segments (Segmentos)

Um segment é a unidade de armazenamento lógico imediatamente acima do extent. Segment é um conjunto de extents armazenados em uma determinada estrutura lógica. A tabela a seguir descreve os diferentes tipos de segments.
O Oracle aloca dinamicamente espaço quando os extents de um segment estão cheios. Em outras palavras: Quando um extent de um segment esta cheio o Oracle aloca um outro extent para o segment. Por ser alocado apenas quando necessário o extent de segment pode ser ou não contínuo.

Tablespaces

Um banco de dados é dividido em unidades lógicas de armazenamento chamadas de tablespaces. Estas unidades agrupam estruturas lógicas relacionadas, por exemplo: Tablespaces comumente agrupam objetos da aplicação simplificando algumas operações administrativas.

» Cada banco de dados é divido em uma ou mais tablespaces.

» Um ou mais datafiles são criados para armazenar fisicamente os dados de todas as estruturas lógicas de um tablespace.

» O tamanho total dos datafiles de um tablespace é a capacidade do armazenamento do table space.

» A capacidade combinada dos tablespaces de um database é a capacidade do database.

Os tablespaces podem estar on-line ou off-line. Um tablespace precisa estar on-line para que os usuários possam acessar suas informações. Os tablespaces podem ficar off-line para manutenção do database.

Estruturas físicas do banco de dados

Iremos dar uma visão geral das seguintes estruturas físicas do banco de dados Oracle: data files, arquivos de log de redo e arquivos de controle.

Data files

Todo banco de dados Oracle tem um ou mais data files físicos.  Os data files contém os dados do banco de dados. Os dados das estruturas lógicas como tabelas e índices são fisicamente armazenados nos data files alocados para o banco  de dados.

As características dos data files são:

» Um data file pode ser associado a um único data base.

» Os data files tem uma características que permitem que eles sejam expandidos sempre que o espaço físico do banco de dados terminar.

» Um ou mais data files formam uma unidade lógica de armazenamento chamada tablespace.

Os dados de um data file são lidos, quando preciso, durante as operações normais de banco de dados e armazenados no cachê de memória do Oracle. Por exemplo: Um usuário quer acessa  algum dado armazenado na tabela do banco. Se o dado desejado não ainda não se encontra no cachê do banco ele é lido no data file apropriado e armazenado no cache de memória.

Dados modificados ou alterados não são necessariamente armazenados no data file de imediato. Para reduzir o acesso a disco e melhorar o desempenho, o dado é colocado na memória e gravado no data file todos de uma vez como determinado pelo processos interno do Oracle chamado “database writer process”. Este processo é executado em segundo plano.

Redo Log Files

Todo banco de dados Oracle tem um conjunto de um ou mais redo log files. O conjunto de um ou mais redo log files são conhecidos coletivamente como redo log do banco de dados. Os redo log files são criados através de registros de redo.

A função primária destes arquivos e registrar todas as mudanças realizadas nos dados do banco de dados. Se devido a uma falha há necessidade de se recuperar informações do banco de dados isto é possível de ser feito através dos redo log files.

Para evitar falhas envolvendo os arquivos de redo log files o Oracle permite a criação de multiplexed redo log files que são uma ou mais cópias mantidas em diferentes discos.

As informações dos redo log files são usadas somente para recuperar um banco de dados após uma falha do sistema ou do disco.

Control files

Todo banco de dados do Oracle tem um control file. Os controls files guardam os registros que especificam as estruturas físicas dos arquivos. Por exemplo, eles contém as seguintes informações:

» Nome do banco de dados

» Nomes e localizações dos redo log files

» A data da criação do banco de dados

Como os redo log files os control files também podem ter cópias mantidas em mais de um disco para efeito de segurança.

Data Utilities

A um conjunto de três utilitários do Oracle (data utilities) quer permitem que você faça as operações de importação, exportação e SQL Loader.

Utilitário de importação

O utilitário de importação do Oracle insere em um banco de dados objetos retirados de outro banco de dados através do utilitário de exportação.

Utilitário de exportação

O utilitário de exportação do Oracle exporta objetos de um banco de dados e insere em outro banco de dados sobre mesma plataforma ou plataforma diferente.

SQL Loader

Arquivos gerados pelo utilitário de exportação só podem ser lidos pelo utilitário de importação. Caso necessite ler arquivos em formato ASCII, como arquivos com campos delimitados por vírgula, deverá ser utilizado o utilitário SQL Loader.

ORACLE 2
O Oracle divide-se em duas partes:
1.            Instância – área de memória, alocada para o oracle gerenciar as requisições feitas pelos usuários e manipular os Bancos de Dados. É a forma de conexão com o Banco de Dados, apenas um instância é aberta;
2.            Banco de Dados – conjunto de arquivos físicos, onde são armazenadas as tabelas, índices e demais objetos do Banco de Dados.
O Banco de Dados é dividido em três arquivos, são eles:
•             Datafiles – Arquivos físicos, armazenam tabelas, índices, etc. É necessário pelo menos um datafile;
•             Redo Log File – Armazena fisicamente as alterações realizadas pelo Oracle, é utilizado como uma espécie de segurança transacional. São necessários pelo menos 2 Red Log File;
•             Control File – Gerenciam e armazenam toda a estrutura do Banco de Daods. É necessário pelo menosum Control File.
SGA (System global area) – memória alocada na inicialização, é de fundamental importância para o funcionamento do Banco de Dados. A sua estrutura é a seguinte:
•             Shared Pool;
•             Database Buffer Cache;
•             Redo Log Buffer;
•             demais estruturas (lock, gerenciamento de fila, dados estatísticas);
•             large pool;
•             java pool.
O SGA, possui informações e dados de comtrole para o servidor.
Para verificar os parâmetros do SGA usa-se o comando:

>show sga
PGA (Program global area) – memória alocada na inicialização quando o servidor é iniciado, é uma memória não compartilhada. Contêm:
•             Área de SORT;
•             Informações de Sessão;
•             Estado do Cursor;
•             Espaço de pilha.
Segmento de RollBack (undo segment), é um objeto físico localizado dentro de um data file do Banco de Dados. Armazena a imagem antiga de uma transação que está sendo executada.
Conectando com o Banco de Dados

connect / as sysdba
Os comandos abaixo são utilizados para exportar e importar um Banco de Dados, tabela(s) e/ou usuário(s).
EXPORT
Exporta as tabelas (tabela1, tabela2 e tabela3)

$ expdp USUARIO/INSTÂNCIA tables=(tabela1, tabela2, tabela3) \
file=d:\banco.dmp \
log=d:\banco.log
Exporta o Banco de Dados inteiro

$ expdp USUARIO/INSTÂNCIA full=y \
file=d:\banco.dmp \
log=d:\banco.log
Importa as tabelas (tabela1, tabela2 e tabela3)

$ impdp USUARIO/INSTÂNCIA tables=(tabela1, tabela2, tabela3) \
file=d:\banco.dmp \
log=d:\banco.log
Exporta o Banco de Dados inteiro

$ impdp USUARIO/INSTÂNCIA full=y \
file=d:\banco.dmp \
log=d:\banco.log

BD-MODELO ENTIDADE-RELACIONAMENTO


MODELO ENTIDADE-RELACIONAMENTO 1

Enunciado de requisitos – entrevista com o usuário do banco de dados para entender e usuário do banco de dados para entender e documentar seus requerimentos de dados.

  • Projeto Conceitual Projeto Conceitual – dados os requisitos do dados os requisitos do sistema, o esquema conceitual é uma descrição concisa dos requerimentos do descrição concisa dos requerimentos do usuário, usando um modelo de dados, ex, o MER. Ela serve para checar se todos os  pedidos dos usuários estão sendo atendidos e se não há conflitos entre eles. Não há preocupação com armazenamento físico.
  • Projeto Lógico – é a descrição das estruturas estruturas de representação representação da base de dados. O modelo conceitual é transformado em num modelo de dados de IMPLEMENTAÇÃO., ex, mod leo reli lacona. Ele resulta no esquema do banco de dados no modelo de dados de implementação implementação usado pelo SGBD.
  • Projeto Físico – é a descrição das estruturas internas de armazenamento, dos esquemas utilizando a DDL (Data Definition Language).

MODELO ENTIDADE-RELACIONAMENTO 2

O modelo Entidade-Relacionamento (E-R) tem por base que o mundo real é formado por um conjunto de objetos  chamados de entidades e pelo conjunto dos  relacionamentos entre esses objetos;
O objetivo do modelo E-R é rep g resentar a estrutura lógica do banco de dados de uma empresa, especificando o esquema da empresa, quais as entidades e como elas se relacionam entre si.
O modelo E-R é chamado de Modelagem Conceitual, cujo objetivo é representar de uma forma abstrata, independente da IMPLEMENTAÇÃO, q lementação em computador, os dados que serão armazenados no banco de dados.
  • Conceitos básicos:

– O Modelo ER trabalha com conceitos básicos:
-Atributos
-Conjuntos de Entidade
-Conjuntos de Relacionamento
Atributos:
-Simples ou Compostos
-Monovalorados ou Multivalorados
-Nulos
-Derivados


MODELO ENTIDADE-RELACIONAMENTO 3

Atributos
Dado que é associado a cada ocorrência de uma entidade ou de um relacionamento Os uma entidade ou de um relacionamento. Os atributos são as propriedades das entidades.

Entidade
Conjunto de objetos (coisas, tudo que é perceptível, manipulável) manipulável) da realidade realidade modelada modelada sobre os quais deseja-se manter informações no banco de dados. As entidades são representadas por retângulos.


MODELO ENTIDADE-RELACIONAMENTO 4

Estratégias para reconhecer entidades
As coisas tangíveis: aquilo que pode ser tocado.
-carro, moto, casa, etc.

Funções: todo o tipo de papel, atribuição, classificação, ou outra característica qualquer que para um dado elemento, especifique não sua para um dado elemento, especifique não sua existência mas sua atuação no ambiente em que está inserido.
– Departamento de uma empresa, o autor de um Departamento de uma empresa, o autor de umlivro, um médico.
Eventos ou ocorrências: são ações ou fatos que uma vez ocorrendo possuem características próprias vez ocorrendo possuem características próprias sobre as quais podemos fazer alguma referência.
– um vôo comercial, um acidente de trânsito, um  jogo de futebol jogo de futebol.

MODELO ENTIDADE-RELACIONAMENTO 4

Conjunto de Relacionamentos
Um relacionamento é uma associação entre uma ou várias entidades-conjuntos de relacionamentos, representado por  um losango.

Auto-relacionamento representa uma associação entre ocorrências de uma mesma entidade.A função que uma entidade desempenha em um relacionamento é chamada Papel;
O numero de conjunto de entidades que participa de um conjunto de relacionamento é também o grau desse conjunto de relacionamento. Um conjunto de relacionamento binário é de grau dois; um relacionamento ternário é de grau três.

Mapeamento de Restrições
O esquema de E-R de uma empresa pode definir certas restrições, as quais o conteúdo do banco de dados deve conteúdo do banco de dados deve respeitar.Isso é feito utilizando Isso é feito utilizando o Mapeamento de o Mapeamento de Cardinalidade

MODELO ENTIDADE-RELACIONAMENTO 5
Expressa o número de entidades as quais outra entidade pode estar associada via um conjunto de relacionamentos.
Um para Um
Uma entidade em A está associada no máximo a uma entidade em B, e uma entidade em B está associada a no máximo uma entidade em A.

Um para muitos
Uma entidade em A está associada a várias entidades em B. Uma entidade em B, entretanto, deve estar associada no máximo a uma  entidade em A.
Muitos para muitos
Uma entidade em A está associada a qualquer número de entidades em B e uma entidade em B está associada a um número qualquer de entidades em A.

Banco de dados


RESUMO BANCO DE DADOS 1

Um Banco de Dados Relacional é um conceito abstrato que define maneiras de armazenar, manipular e recuperar dados estruturados unicamente na forma de tabelas, construindo um banco de dados.

RESUMO BANCO DE DADOS 2

As 13 regras 
Em 1985, Edgar Frank Codd, criador do modelo relacional, publicou um artigo onde definia 13 regras para que um Sistema Gerenciador de Banco de Dados (SGBD) fosse considerado relacional:
1.    Regra Fundamental:
·         Um SGBD relacional deve gerir os seus dados usando apenas suas capacidades relacionais
2.    Regra da informação:
·         Toda informação deve ser representada de uma única forma, como dados em uma tabela
3.    Regra da garantia de acesso:
·         Todo o dado (valor atómico) pode ser acedido logicamente (e unicamente) usando o nome da tabela, o valor da chave primária da linha e o nome da coluna.
4.    Tratamento sistemático de valores nulos:
·         Os valores nulos (diferente do zero, da string vazia, da string de caracteres em brancos e outros valores não nulos) existem para representar dados não existentes de forma sistemática e independente do tipo de dado.
5.    Catálogo dinâmico on-line baseado no modelo relacional:
·         A descrição do banco de dados é representada no nível lógico como dados ordinários (isto é, em tabelas), permitindo que usuários autorizados apliquem as mesmas formas de manipular dados aplicada aos dados comuns ao consultá-las.
6.    Regra da sub-linguagem abrangente:
·         Um sistema relacional pode suportar várias linguagens e formas de uso, porém deve possuir ao menos uma linguagem com sintaxe bem definida e expressa por cadeia de caracteres e com habilidade de apoiar a definição de dados, a definição de visões, a manipulação de dados, as restrições de integridade, a autorização e a fronteira de transações.
7.    Regra da atualização de visões:
·         Toda visão que for teoricamente atualizável será também atualizável pelo sistema.
8.    Inserção, atualização e eliminação de alto nível:
·         Qualquer conjunto de dados que pode ser manipulado com um único comando para retornar informações, também deve ser manipulado com um único comando para operações de inserção, atualização e exclusão. Simplificando, significa dizer que as operações de manipulação de dados devem poder ser aplicadas a várias linhas de uma vez, ao invés de apenas uma por vez.
9.    Independência dos dados físicos:
·         Programas de aplicação ou atividades de terminal permanecem logicamente inalteradas quaisquer que sejam as modificações na representação de armazenagem ou métodos de acesso internos.
10. Independência lógica de dados
·         Programas de aplicação ou atividades de terminal permanecem logicamente inalteradas quaisquer que sejam as mudanças de informação que permitam teoricamente a não alteração das tabelas base.
11. Independência de integridade:
·         As relações de integridade específicas de um banco de dados relacional devem ser definidas em uma sub-linguagem de dados e armazenadas no catálogo (e não em programas).
12. Independência de distribuição:
·         A linguagem de manipulação de dados deve possibilitar que as aplicações permaneçam inalteradas estejam os dados centralizados ou distribuídos fisicamente.
13. Regra da Não-subversão:
·         Se o sistema relacional possui uma linguagem de baixo nível (um registro por vez), não deve ser possível subverter ou ignorar as regras de integridade e restrições definidas no alto nível (muitos registros por vez).
RESUMO BANCO DE DADOS 3
Um Banco de Dados Relacional segue o Modelo Relacional.
A arquitetura de um banco de dados relacional pode ser descrita de maneira informal ou formal. Na descrição informal estamos preocupados com aspectos práticos da utilização e usamos os termos tabela, linha e coluna. Na descrição formal estamos preocupados com a semântica formal do modelo e usamos termos como relação (tabela), tupla(linhas) e atributo(coluna).
Tabelas (ou relações, ou entidades)
Todos os dados de um banco de dados relacional (BDR) são armazenados em tabelas. Uma tabela é uma simples estrutura de linhas e colunas. Em uma tabela, cada linha contém um mesmo conjunto de colunas. Em um banco de dados podem existir uma ou centenas de tabelas, sendo que o limite pode ser imposto tanto pela ferramenta de software utilizada, quanto pelos recursos de hardware disponíveis no equipamento.
As tabelas associam-se entre si através de regras de relacionamentos, estas regras consistem em associar um ou vários atributo de uma tabela com um ou vários atributos de outra tabela.
·         Exemplo: A tabela funcionário relaciona-se com a tabela cargo. Através deste relacionamento esta última tabela fornece a lista de cargos para a tabela funcionário.
Modelo teórico usado para representar conceitualmente um BD, Idealizado por Codd (1970). Baseado numa estrutura de dados simples chamada relação. É o modelo mais amplamente usado, principalmente em aplicações convencionais de BD.

RESUMO BANCO DE DADOS 4
Registros (ou tuplas)
Cada linha formada por uma lista ordenada de colunas representa um registro, ou tupla. Os registros não precisam conter informações em todas as colunas, podendo assumir valores nulos quando assim se fizer necessário.
Resumidamente, um registro é uma instância de uma tabela, ou entidade. O start da modelagem se dá a partir das ENTIDADES. Uma entidade é uma representação de um conjunto de informações sobre determinado conceito do sistema. Toda entidade possui ATRIBUTOS, que são as informações que referenciam a entidade. Para exemplificar no sistema de controle de Biblioteca, partimos do conceito principal que é o empréstimo de obras por usuários da biblioteca. A partir deste conceito inicial, vamos ramificando e descobrindo novos conceitos. Podemos iniciar nosso raciocínio da seguinte forma:
"Uma biblioteca possui Obras literárias que podem ser tomadas em empréstimos pelos usuários credenciados."
Podemos rapidamente enxergar um cadastro de livros, um cadastro de usuários e um registro de empréstimos, certo? É essa visão que temos que ter ao modelarmos um banco, isto é, devemos detectar as informações que devemos armazenar.
Para identificar se aquele conceito pode ser uma entidade você deve apenas se perguntar: "Eu desejo armazenar quais informações sobre este conceito ?" Se houverem informações a serem armazenadas, você tem uma ENTIDADE. Exemplificando: Eu desejo armazenar os seguintes dados do livro: Título, Autor, Editora, Ano, Edição e Volume. Temos então a entidade Livro.
·         Exemplo: O empregado Pedro é uma instância (registro) da tabela funcionário, e a função Analista Comercial é a instância (registro) da tabela cargo. Uma associação entre estas duas tabelas criaria a seguinte instância de relacionamento: Pedro é Analista Comercial, onde o verbo ser representa uma ligação entre os registros distintos.

RESUMO BANCO DE DADOS 5

Colunas (atributos) 

As colunas de uma tabela são também chamadas de atributos. Ex.: O campo Nome, ou endereço de uma tabela de um BD relacional.

Chave 

As tabelas relacionam-se umas as outras através de chaves. Uma chave é um conjunto de um ou mais atributos que determinam a unicidade de cada registro.
Por exemplo, se um banco de dados tem como chaves Código do Produto e ID Sistema, sempre que acontecer uma inserção de dados o sistema de gerenciamento de banco de dados irá fazer uma consulta para identificar se o registro já não se encontra gravado na tabela. Neste caso, um novo registro não será criado, resultando esta operação apenas da alteração do registro existente.
A unicidade dos registros, determinada por sua chave, também é fundamental para a criação dos índices.
Temos dois tipos de chaves:
Chave primária: (PK - Primary Key) é a chave que identifica cada registro dando-lhe unicidade. A chave primária nunca se repetirá.
Chave Estrangeira: (FK - Foreign Key) é a chave formada através de um relacionamento com a chave primária de outra tabela. Define um relacionamento entre as tabelas e pode ocorrer repetidas vezes. Caso a chave primária seja composta na origem, a chave estrangeira também o será.
RESUMO BANCO DE DADOS 6

Relacionamentos 

Com o advento do Modelo de Entidades e Relacionamentos foi causada uma confusão entre os termos relação e relacionamento
O Modelo Relacional, quando descrito de forma matemática, é definido como um modelo formado por relações (no sentido matemático) entre os domínios. Cada tupla é um elemento do conjunto relação.
Ou seja, a relação é a tabela.
Um relacionamento do Modelo de Entidades e Relacionamentos é uma associação entre entidades distintas. Não há relação direta entre o nome relacionamento e o nome relação.
Porém, um relacionamento, do Modelo de Entidades e Relacionamentos é traduzido para a criação de atributos com chaves externas do Modelo Relacional. Esta tradução é feita ligando-se um campo de uma tabela X com um campo de uma tabela Y, por meio da inclusão do campo chave da tabela Y como um campo (conhecido como chave estrangeira) da tabela X.
Por meio das chaves estrangeiras, é possível implementar restrições nos SGBDR.
Existem alguns tipos de relacionamentos possíveis no MER:
·         Um para um (1 para 1) - indica que as tabelas têm relação unívoca entre si. Você escolhe qual tabela vai receber a chave estrangeira;
·         Um para muitos (1 para N) - a chave primária da tabela que tem o lado 1 está para ir para a tabela do lado N. No lado N ela é chamada de chave estrangeira;
·         Muitos para muitos (N para N) - quando tabelas têm entre si relação n..n, é necessário criar uma nova tabela com as chaves primárias das tabelas envolvidas, ficando assim uma chave composta, ou seja, formada por diversos campos-chave de outras tabelas. A relação então se reduz para uma relação 1..n, sendo que o lado n ficará com a nova tabela criada.
Os relacionamentos 1 para 1 e 1 para N podem ser mapeados diretamente em chaves estrangeiras nas tabelas originais. Já o relacionamento N para N exige o uso de uma tabela auxiliar. No relacionamento N:N não há chave estrangeira.

RESUMO BANCO DE DADOS 6

Modelagem 

Normalização 

Os bancos de dados relacionais utilizam a normalização de dados para evitar redundâncias e possibilitar um maior desempenho nas pesquisas.
Normalização
É o processo de organização eficiente dos dados dentro de um banco de dados cujos objetivos principais são:
1.    Eliminar dados redundantes (por exemplo, armazenando os mesmos dados em mais de uma tabela).
2.    Garantir que as dependências entre os dados façam sentido (armazenando apenas dados logicamente relacionados em uma tabela).
Existem cinco estágios de normalização, 1º, o 2º, o 3º, o 4º e o 5º. Para um banco de dados se encontrar em cada um desses estágios ou formas (denominadas formas normais), cada uma de suas tabelas deve atender a alguns pré-requisitos. Os pré-requisitos são cumulativos, isto é, para alcançar a 3ª forma normal (3NF), um banco de dados precisa atender aos pré-requisitos das 1ª e 2ª formas normais, acrescidos dos requisitos exclusivos da 3NF.

Dependência Funcional 

Um atributo B possui uma dependência funcional do atributo A se, para cada valor do atributo A, existe exatamente um único valor do atributo B. A dependência funcional é representada por A → B.