Professional Documents
Culture Documents
Os objetivos de um sistema de banco de dados so o de isolar o usurio dos detalhes internos do banco de dados (promover a abstrao de dados) e promover a independncia dos dados em relao s aplicaes, ou seja, tornar independente da aplicao, a estratgia de acesso e a forma de armazenamento.
Nvel de viso do usurio: as partes do banco de dados que o usurio tem acesso de acordo com a necessidade individual de cada usurio ou grupo de usurios; Nvel conceitual: define quais os dados que esto armazenados e qual o relacionamento entre eles; Nvel fsico: o nvel mais baixo de abstrao, em que define efetivamente de que maneira os dados esto armazenados.
1.3 Projeto de banco de dados Todo bom sistema de banco de dados deve apresentar um projeto, que visa a organizao das informaes e utilizao de tcnicas para que o futuro sistema obtenha boa performance e tambm facilite infinitamente as manutenes que venham a acontecer. O projeto de banco de dados se d em duas fases:
Estas duas etapas se referem a um sistema de banco de dados ainda no implementado, ou seja, que ainda no 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 documentao, o processo de projeto de banco de dados se dar atravs da utilizao de uma tcnica chamada de Engenharia Reversa, que ser visto em outra oportunidade. 1.4 Modelo conceitual a descrio do BD de maneira independente ao SGBD, ou seja, define quais os dados que aparecero no BD, mas sem se importar com a implementao que se dar ao BD. Desta forma, h uma abstrao em nvel de SGBD. Uma das tcnicas mais utilizadas dentre os profissionais da rea a abordagem entidade-relacionamento (ER), onde o modelo representado graficamente atravs do diagrama entidade-relacionamento (DER) (Figura 3).
O modelo acima, entre outras coisas, nos traz informaes sobre Alunos e Turmas. Para cada Aluno, ser armazenado seu nmero de matrcula, seu nome e endereo, enquanto para cada turma, teremos a informao de seu cdigo, a sala utilizada e o perodo. 1.5 Modelo Lgico Descreve o BD no nvel do SGBD, ou seja, depende do tipo particular de SGBD que ser usado. No podemos confundir com o Software que ser usado. O tipo de SGBD que o modelo lgico trata se o mesmo relacional, orientado a objetos, hierrquico, etc. Abordaremos o SGBD relacional, por serem os mais difundidos. Nele, os dados so organizados em tabelas (Quadro 1). Aluno mat_aluno 1 2 3 nome Ceclia Ortiz Rezende Ablio Jos Dias Renata Oliveira Franco endereco Rua dos Ips, 37 Avenida Presidente Jnio Quadros, 357 Rua Nove de Julho, 45
O modelo lgico do BD relacional deve definir quais as tabelas e o nome das colunas que compem estas tabelas. Para o nosso exemplo, poderamos definir nosso modelo lgico conforme o seguinte: Aluno(mat_aluno, nome, endereco) Turma (cod_turma, sala, periodo) importante salientar que os detalhes internos de armazenamento, por exemplo, no so descritos no modelo lgico, pois estas informaes fazem parte do modelo fsico, que nada mais que a traduo do modelo lgico para a linguagem do software escolhido para implementar o sistema.
1.6 Histrico Evolutivo de Banco de Dados At 1960 : Sistema de Arquivos Estrutura de Dados (Pascal, C, etc.) Final de 1960 : Modelo Hierrquico 1970 e incio de 1980: Modelo de Redes Meados de 1980: Modelo Relacional (Codd) Final de 1980: Modelo Orientado a Objetos e Objeto-Relacional
1.7 Abstrao de Dados O grande objetivo de um sistema de BD oferecer uma viso abstrata dos dados aos usurios. Os detalhes referentes a forma como estes dados esto armazenados e mantidos no interessa aos usurios, mas a disponibilidade eficiente destes dados que so fundamentais
O conceito de abstrao est associado caracterstica de se observar somente os aspectos de interesse, sem se preocupar com maiores detalhes envolvidos. No contexto de abstrao de dados um banco de dados pode ser visto sem se considerar a forma como os dados esto armazenados fisicamente. Exemplo: Um programador de aplicao no precisa se importar com aspectos fsicos de armazenamento dos dados
Um banco de dados representa algum aspecto do mundo real e a alterao neste mundo real tem que ser refletida no banco de dados.
o supervisor do banco de dados, responsvel pela autorizao de acesso ao banco, monitoramento e coordenao do uso. Est envolvido com os aspectos fsicos do banco de dados (estruturas de armazenamento, mtodos de acesso, etc). Projetista do Banco So responsveis pela identificao dos dados e a elaborao de estruturas apropriadas para armazen-los. Compreender os requisitos necessrios aos grupos de usurios do banco de dados antes de sua implementao. Analista de Sistemas Determina os requisitos dos usurios e desenvolvem especificaes que atendam estes requisitos. Programadores Implementam as especificaes na forma de programas elaborando toda a documentao. Usurio (final) Um banco de dados existe para a utilizao do usurio final, onde normalmente o seu trabalho requer consultas e atualizaes. A maioria dos usurios utiliza programas voltados ao desempenho profissional, utilizando-os em seu dia-a-dia.
1.12 DIFERENAS ENTRE BANCO DE DADOS E SISTEMAS DE ARQUIVOS 1.12.1 Banco de Dados
Um nico repositrio de dados mantido. Acesso de todos usurios sobre o mesmo BD com nico espao de armazenamento Atualizao dos dados em apenas uma estrutura de banco de dados
Compartilhamento de Dados Se diversos usurios tem aplicaes integradas no BD, precisa-se de um software de controle de concorrncia para a atualizao do banco
Facilidade na definio da viso do usurio, especificando uma poro do BD que tem interesse particular de um grupo de usurios Restrio de acesso no autorizado: Possui um sistema de segurana garantindo o acesso especfico a cada usurio (personalizado para grupos ou individual), garantindo assim segurana no acesso ao BD, diferentes permisses de operao no BD, proteo de contas pessoais (ou grupo) por senhas, segurana no uso do prprio SGBD como nas criaes de novas contas Fornecimento de mltiplas interfaces (vises): Diversos nveis de conhecimento entre os usurios, onde o BD deve oferecer vrios tipos de acesso aos dados Forar restries de integridade: armazenamento de vrios tipos de dados (inteiro, real, lgico), relacionamentos entre os dados, obrigatoriedade ou no de informao do dado (nulo ou no nulo), unicidade do dado (chave primria), dificultar a ocorrncia de erros, Sistema de Backup e Recovery: Capacidade de salvamento e recuperao dos dados
Facilidade e controle do BD no caso de falha do hardware ou do software chegando a fazer uma recuperao da situao anteriormente encontrada, evitando duplicidade e dados inconsistentes
ESQUEMA DE BANCO DE DADOS A descrio de um BD chamada de esquema de banco de dados. Um esquema de BD especificado durante o projeto do BD e no freqentemente modificado. INSTNCIA DE BANCO DE DADOS O conjunto de dados armazenados no BD, em um determinado momento ou instante, chamado de instncia do banco de dados (fotografia do BD em um instante especfico). Exemplo:
SISTEMAS ISOLADOS
Problema: redundncia de dados Como evitar redundncia no controlada de dados? Compartilhamento de dados Cada informao armazenada uma nica vez Usar o conceito de Banco de Dados SISTEMAS COMPARTILHANDO DADOS
3.1 MODELO DE ENTIDADE E RELACIONAMENTO (MER) 3.1.1 Definio Consiste em mapear o mundo real do sistema em um modelo grfico que ir representar o modelo e o relacionamento existente entre os dados. O MER um modelo de dados conceitual de alto-nvel, ou seja, seus conceitos foram projetados para serem compreensveis a usurios, descartando detalhes de como os dados so armazenados. Atualmente, o MER usado principalmente durante o processo de projeto da base de dados. Existem expectativas para que uma classe de SGBDs baseados diretamente no MER esteja disponvel no futuro.
3.1.2 Entidade
Identifica o objeto de interesse do sistema e tem "vida" prpria, ou seja, a representao abstrata de um objeto do mundo real sobre o qual desejamos guardar informaes. Uma Entidade algo da realidade sendo modelada e deve ser identificada de modo nico. Exemplo: Clientes, Fornecedores, Alunos, Funcionrios, Departamentos, etc. No so entidades: - Entidade com apenas 1 elemento; - Operaes do sistema; - Sadas do sistema; - Pessoas que realizam trabalhos (usurios do sistema);
10
3.1.4 Atributo
Informaes que desejamos guardar sobre a instncia de entidade. Exemplo: Nome do aluno, Nmero da turma, Endereo do fornecedor, Sexo do funcionrio, etc.
Relacionamento - Representa a associao entre os elementos do conjunto de um entidade com outra entidade ou com a mesma entidade (auto-relacionamento). Exemplo: O Joo est matriculado na disciplina de Banco de Dados, onde: - Joo - Elemento do conjunto de valores do atributo Nome do aluno da entidade Aluno; - Banco de Dados - Elemento do conjunto de valores do atributo Nome da disciplina da entidade Disciplina; - matriculado - Ligao existente entre um aluno e uma disciplina.
ALUNO MATRICULAD
DISCIPLINA
3.3 - Cardinalidade de Relacionamentos Representa a freqncia com que existe o relacionamento. Nmero de ocorrncias de uma entidade que podem estar associadas a uma determinada ocorrncia de entidade atravs do relacionamento. Existem dois tipos de cardinalidade: mxima e mnima
11
HOMEM
CASAMENTO
MULHER
3.3.5 Relacionamento N : M
O Antnio est matriculado na disciplina Banco de Dados, onde: - Antnio - Elemento do conjunto de valores do atributo Nome da entidade Aluno. - Banco de Dados - Elemento do conjunto de valores do atributo Nome da Disciplina da entidade Disciplina. - matriculado - Ligao existente entre um aluno e uma disciplina, onde um aluno pode estar matriculado em vrias disciplinas e cada disciplina pode ter vrios alunos matriculados.
ALUNOS
MATRICULA
DISCIPLINA
12
3.4 ATRIBUTOS O Atributo descreve uma determinada caracterstica relevante da entidade em uma dada abstrao. Por exemplo, os atributos de um cliente para uma aplicao financeira seriam nome, cpf, data de nascimento e rendimento mensal, etc. J um cliente para uma aplicao mdica seria descrito pelos atributos nome, tipo sanguneo, fator RH, sensibilidades a medicamento, etc. Todas as entidades do mesmo tipo possuem os mesmos atributos, mas com valores distintos. Atributos e valores descrevem as instncias de uma entidade. O conjunto de valores possveis para um atributo chamado domnio. O domnio do nmero do emprstimo, por exemplo, seria todo o conjunto de nmeros inteiros positivos
13
3.4.1 Atributos do Relacionamento Quando um determinado relacionamento possui atributos, tambm conhecido como relacionamento valorado. Esta situao ocorre apenas em relacionamento N : M. Ex. Pedro trabalha no projeto Alfa 30 horas. - Pedro - Elemento do conjunto de valores do atributo Nome da entidade Funcionrio. - Alfa - Elemento do conjunto de valores do atributo Nome do Projeto da entidade Projeto. - trabalha - Ligao existente entre um funcionrio e um projeto. Neste caso, este funcionrio trabalha 30 horas neste projeto, porm este mesmo funcionrio poder trabalhar outro nmero de horas em outro projeto, assim como outro funcionrio trabalha outro nmero de horas no mesmo projeto Alfa. Podemos concluir que 30 horas o atributo que pertence ao Pedro no projeto Alfa. FUNCIONRIO N TRABALHA M PROJETO
HORAS
3.5 - Grau do Relacionamento Indica o nmero de entidade que se relacionam. 3.5.1 - Relacionamento Binrio Quando existe o relacionamento entre apenas duas entidades. Ex. Um fornecedor comercializa materiais que so utilizados em diversos projetos.
FORNECEDOR
COMERCIALIZA
MATERIAIS
N PROJETOS N UTILIZAM
3.5.2 - Relacionamento Ternrio Quando existe o relacionamento entre trs entidades. Ex. Um fornecedor comercializa materiais que so utilizados em projetos especficos.
14
FORNECEDORES
MATERIAIS
1 UTILIZADO N
N PROJETOS
PROFESSOR LECIONA N N
DISCIPLINA
ALUNO
N CURSA
CLIENTES N VENDA
PRODUTOS
1 VENDEDORES
Obs. Para que haja uma venda, tem que haver um cliente, um produto e um vendedor.
15
3.6.1 Tabelas
Uma tabela um conjunto no ordenado de linhas (tuplas, na linguagem acadmica). Cada linha composta por uma srie de campos (valor de atributo, na linguagem acadmica). Cada campo identificado por um nome de campo (nome de atributo, na linguagem acadmica). Um conjunto de campos homnimos de todas as linhas de uma tabela uma coluna. Comparando tabelas de um banco de dados relacional com um arquivo convencional, observamos as seguintes diferenas: As linhas de uma tabela no tm ordenao. A ordem de recuperao arbitrariamente estabelecida pelo banco de dados. Os valores de campo de uma tabela so atmicos e monovalorados; As linguagens de consulta a bases de dados relacionais permitem o acesso por quaisquer critrios envolvendo os campos de uma ou mais linhas. No h necessidade de especificar caminhos de acesso.
3.6.2 Chaves
Chaves so um conceito bsico que permitem identificar linhas e estabelecer relaes entre linhas e tabelas de um banco de dados relacional. Em um banco de dados relacional, h pelo menos trs tipos de chaves a serem consideradas: chaves primrias, chaves estrangeiras e chaves alternativas.
Exemplo de uso com mais de uma chave Ex: Almoxarifado de uma empresa: Os produtos ficam armazenados em prateleiras As prateleiras encontram-se em armrios organizados em corredores Corredores so numerados seqencialmente a partir de 1 As prateleiras so numeras a partir de um dentro do seu corredor
16
I. Incluso de uma linha na tabela que contm a chave estrangeira; Neste caso, deve-se garantir que o valor contido na chave estrangeira aparea na coluna da chave primria referenciada. II. Alterao do valor de uma chave estrangeira; Deve-se assegurar que o novo valor aparece na coluna da chave primria referenciada; III. Excluso de uma linha da tabela que contm a chave primria referenciada pela chave estrangeira; Deve ser garantido que na coluna da chave estrangeira no aparea o valor da chave primria que ser excluda. IV. Alterao do valor da chave primria referenciada pela chave estrangeira; Deve ser garantido que na coluna da chave estrangeiras no aparea o valor da chave primria que est sendo alterada. Uma chave estrangeira no referencia, necessariamente, outra tabela. Em um auto-relacionamento, o valor da chave estrangeira o prprio valor da chave primria da mesma tabela.
17
18
Contedo
1. INTRODUO AO BANCO DE DADOS ____________________________________________________ 1
1.1 Conceitos Bsicos _________________________________________________________________________ 1 1.2 Abstrao de dados _______________________________________________________________________ 2 1.3 Projeto de banco de dados __________________________________________________________________ 2 1.4 Modelo conceitual ________________________________________________________________________ 2 1.5 Modelo Lgico ____________________________________________________________________________ 3 1.6 Histrico Evolutivo de Banco de Dados ________________________________________________________ 4 1.7 Abstrao de Dados _______________________________________________________________________ 4 1.8 Dados e Informaes ______________________________________________________________________ 4 1.9 PROPRIEDADES IMPLCITAS DE BANCO DE DADOS _______________________________________________ 5 1.10 ARQUITETURA DE BANCO DE DADOS ________________________________________________________ 5
1.10.1 Viso Externa____________________________________________________________________________________ 5 1.10.2 Viso Conceitual _________________________________________________________________________________ 5 1.10.3 Viso Interna ____________________________________________________________________________________ 5
1.11 PERFIL DE PESSOAS ENVOLVIDAS COM UM BANCO DE DADOS ____________________________________ 5 1.12 DIFERENAS ENTRE BANCO DE DADOS E SISTEMAS DE ARQUIVOS _________________________________ 6
1.12.1 Banco de Dados __________________________________________________________________________________ 6 1.12.2 Sistema de Arquivos ______________________________________________________________________________ 6
2.
3.
19
3.5.1 Relacionamento Binrio ___________________________________________________________________________ 13 3.5.2 Relacionamento Ternrio __________________________________________________________________________ 13 3.5.3 Exemplos de Relacionamento: ______________________________________________________________________ 14