Vous êtes sur la page 1sur 47

BANCO DE DADOS

Prof. Demetrius Tobias

INTRODUO
Um Banco de Dados antes de mais nada uma coleo logicamente coerente de dados com determinada significao intrnseca1. Em outras palavras um arquivo contendo uma srie de dados de um cliente, um arquivo com dados aleatoriamente gerados.

Segundo Korth, um banco de dados uma coleo de dados inter-relacionados, representando informaes sobre um domnio especfico, ou seja, sempre que for possvel agrupar informaes que se relacionam e tratam de um mesmo assunto, posso dizer que tenho um banco de dados.

1Essencial,

inseparvel, prpria

INTRODUO
Podemos exemplificar situaes clssicas como uma lista telefnica, um catlogo 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 informaes do banco de dados e interagir com o usurio. Exemplos de SGBDs so: Oracle, SQL Server, DB2, PostgreSQL, MySQL, o prprio Access ou Paradox, entre outros.

Sistema de Arquivos x Sistemas de Banco de Dados

O acesso/gerenciamento aos/dos dados feito diretamente pelos programas aplicativos.

O acesso/gerenciamento aos/dos dados feito pelo SGBD. O SGBD funciona como uma interface entre o BD e os programa aplicativos

INTRODUO
Usurios
Hardware/Software

Por ltimo, temos que conceituar um sistema de banco de dados como o conjunto de quatro componentes bsicos: dados, hardware, software e usurios. Date conceituou que sistema de bancos de dados pode ser considerado como uma sala de arquivos eletrnica. A Figura ilustra os componentes de um sistema de banco de dados.

SGBD

INTRODUO
Os Administradores de Banco de Dados (DBA) so responsveis pelo controle ao acesso aos dados e pela coordenao da utilizao do BD. J os projetistas de Banco de Dados (DBP) so analistas que identificam os dados a serem armazenados em um Banco de Dados e pela forma como estes sero representados. Os Analistas e Programadores de Desenvolvimento, criam sistemas que acessam os dados da forma necessria ao Usurio Final, que aquele que interage diretamente com o Banco de Dados.

SGBD

SGBD
Um SGBD - Sistema de Gerenciamento de Banco de Dados uma coleo de programas que permitem ao usurio definir, construir e manipular Bases de Dados para as mais diversas finalidades. Um conceito que dever ficar bastante claro inicialmente o que envolve a separao clara entre os Gerenciadores de Base de Dados dos Gerenciadores de Arquivo.

SGBD
Vamos definir algumas regras bsicas e claras para um sistema de manipulao de dados ser considerado um SGBD. Fica implcito que se ao menos uma das caractersticas abaixo no estiver presente no nosso "candidato" a SGBD, este poder ser um GA (Gerenciador de Arquivo) de altssima qualidade, "quase" um SGBD, mas no um SGBD.

SGBD
Regra 1: Auto-Conteno - Um SGBD no contm apenas os dados em si, mas armazena completamente toda a descrio dos dados, seus relacionamentos e formas de acesso. Normalmente esta regra chamada de Meta-Base de Dados. Em um GA, em algum momento ao menos, os programas aplicativos declaram estruturas (algo que ocorre tipicamente em C, COBOL e BASIC), ou geram os relacionamentos entre os arquivos (tpicos do ambiente xBase). Por exemplo, quando voc obrigado a definir a forma do registro em seu programa, voc no est lidando com um SGBD.

SGBD
Regra 2: Independncia dos Dados- Quando as aplicaes estiverem realmente imunes a mudanas na estrutura de armazenamento ou na estratgia de acesso aos dados, podemos dizer que esta regra foi atingida. Portanto, nenhuma definio dos dados dever estar contida nos programas da aplicao. Quando voc resolve criar uma nova forma de acesso, um novo ndice, se precisar alterar o cdigo de seu aplicativo, voc no est lidando com um SGBD.

SGBD
Regra 3: Abstrao dos Dados- Em um SGBD real fornecida ao usurio somente uma representao conceitual dos dados, o que no inclui maiores detalhes sobre sua forma de armazenamento real. O chamado Modelo de Dados um tipo de abstrao utilizada para fornecer esta representao conceitual. Neste modelo, um esquema das tabelas, seus relacionamentos e suas chaves de acesso so exibidas ao usurio, porm nada afirmado sobre a criao dos ndices, ou como sero mantidos, ou qual a relao existente entre as tabelas que dever ser mantida ntegra. Assim se voc desejar inserir um pedido em um cliente inexistente e esta entrada no for automaticamente rejeitada, voc no est lidando com um SGBD.

SGBD
Regra 4: Vises- Um SGBD deve permitir que cada usurio visualize os dados de forma diferente daquela existente previamente no Banco de Dados. Uma viso consiste de um subconjunto de dados do Banco de Dados, necessariamente derivados dos existentes no Banco de Dados, porm estes no devero estar explicitamente armazenados. Portanto, toda vez que voc obrigado a replicar uma estrutura, para fins de acesso de forma diferenciada por outros aplicativos, voc no est lidando com um SGBD.

SGBD
Regra 5: Transaes- Um SGBD deve gerenciar completamente a integridade referencial definida em seu esquema, sem precisar em tempo algum, do auxlio do programa aplicativo. Desta forma exige-se que o banco de dados tenha ao menos uma instruo que permita a gravao de uma srie modificaes simultneas e uma instruo capaz de cancelar um srie modificaes. Por exemplo, imaginemos que estejamos cadastrando um pedido para um cliente, que este deseje reservar 5 itens de nosso estoque, que esto disponveis e portanto so reservados, porm existe um bloqueio financeiro (duplicatas em atraso) que impede a venda. A transao dever ser desfeita com apenas uma instruo ao Banco de Dados, sem qualquer modificaes suplementares nos dados. Caso voc se obrigue a corrigir as reservas, atravs de acessos complentares, voc no est lidando com um SGBD.

SGBD
Regra 6: Acesso Automtico - Em um GA uma situao tpica o chamado Dead-Lock, o abrao mortal. Esta situao indesejvel pode ocorrer toda vez que um usurio travou um registro em uma tabela e seu prximo passo ser travar um resgistro em uma tabela relacionada primeira, porm se este registro estiver previamente travado por outro usurio, o primeiro usurio ficar paralisado, pois, estar esperando o segundo usurio liberar o registro em uso, para que ento possa trav-lo e prosseguir sua tarefa. Se por hiptese o segundo usurio necessitar travar o registro travado pelo primeiro usurio (!), afirmamos que ocorreu um abrao mortal, pois cada usurio travou um registro e precisa travar um outro, justamente o registro anteriormente travado pelo outro! Imaginemos um caso onde o responsvel pelos pedidos acabou de travar o Registro Item de Pedido, e, necessita travar um registro no Cadastro de Produtos, para indicar uma nova reserva. Se concomitantemente estiver sendo realizada uma tarefa de atualizao de pendncias na Tabela de Itens, e para tanto, previamente este segundo usurio travou a Tabela de Produtos, temos a ocorrncia do abrao mortal. Se a responsabilidade de evitar esta ocorrncia for responsabilidade da aplicao, voc no est lidando com um SGBD.

SGBD
Concluso: Um SGBD deve obedecer INTEGRALMENTE as seis regras acima. Em caso contrrio estaremos diante de um GA ou de um "quase" SGBD

Caractersticas Gerais de um SGBD

Caractersticas Gerais de um SGBD

Os SGBD tem sete caractersticas operacionais elementares sempre observadas, que passaremos a listar:

Caractersticas Gerais de um SGBD


Caracterstica 1: Controle de Redundncias- A redundncia consiste no armazenamento de uma mesma informao em locais diferentes, provocando inconsistncias. Em um Banco de Dados as informaes s se encontram armazenadas em um nico local, no existindo duplicao descontrolada dos dados. Quando existem replicaes dos dados, estas so decorrentes do processo de armazenagem tpica do ambiente ClienteServidor, totalmente sob controle do Banco de Dados. Caracterstica 2: Compartilhamento dos Dados- O SGBD deve incluir software de controle de concorrncia ao acesso dos dados, garantindo em qualquer tipo de situao a escrita/leitura de dados sem erros.

Caractersticas Gerais de um SGBD


Caracterstica 3: Controle de Acesso- O SGDB deve dispor de recursos que possibilitem selecionar a autoridade de cada usurio. Assim um usurio poder realizar qualquer tipo de acesso, outros podero ler alguns dados e atualizar outros e outros ainda podero somente acessar um conjunto restrito d Caracterstica 4: Interfaceamento- Um Banco de Dados dever disponibilizar formas de acesso grfico, em linguagem natural, em SQL ou ainda via menus de acesso, no sendo uma "caixa-preta" somente sendo passvel de ser acessada por aplicaes e dados para escrita e leitura.

Caractersticas Gerais de um SGBD


Caracterstica 5: Esquematizao- Um Banco de Dados dever fornecer mecanismos que possibilitem a compreenso do relacionamento existentes entre as tabelas e de sua eventual manuteno. Caracterstica 6: Controle de Integridade - Um Banco de Dados dever impedir que aplicaes ou acessos pelas interfaces possam comprometer a integridade dos dados.

Caractersticas Gerais de um SGBD


Caracterstica 7: Backups- O SGBD dever apresentar facilidade para recuperar falhas de hardware e software, atravs da existncia de arquivos de "pr-imagem" ou de outros recursos automticos, exigindo minimamente a interveno de pessoal tcnico.

Caractersticas Gerais de um SGBD


Existe a possibilidade de encontramos Bancos de Dados que no satisfaam completamente todas as caractersticas acima, o que no o invlida como Banco de Dados. Na prtica podemos encontrar situaes onde a primeira caracterstica no seja importante, pois podemos ter o Banco de Dados baseado totalmente em um nico servidor, e as redundncias podem ser aceitas em algumas situaes sob controle da aplicao (algo no muito recomendado, mas passvel de aceitao, em situaes onde a existncia do nome do cliente em um arquivo contendo duplicatas emitidas, possibilita o acesso a apenas uma tabela sem relacionamentos, e sabe-se de antemo que uma duplicata depois de emitida, no pode ter seu cliente alterado). A redundncia numa Base de Dados, diz respeito repetio no necessria dos dados nela contidos.

Caractersticas Gerais de um SGBD


A escolha do Banco de Dados da empresa, portanto uma deciso muito delicada, na medida em que est ir acarretar troca de aplicativos e troca de hardware. Os investimentos diretamente aplicados no Banco de Dados, costumam ser infinitamente menores do que aqueles a serem aplicados na empresa, visando sua perfeita adequao ao novo SGBD. Esta deciso, sempre que possvel, deve ser tomada por especialistas em Banco de Dados, com profundos conhecimentos de Anlise de Sistemas, de Banco de Dados e de Software de Gerenciamento de Bases de Dados, de forma a evitar que a empresa escolha um Banco de Dados inadequado aos seus propsitos, e que pouco tempo depois, seja obrigada a perder todos investimento realizado em Software e Hardware.

Estrutura
Podemos dizer que o Banco de Dados tem: um Nvel Interno, onde descrita a estrutura de armazenamento fsico dos dados, um Nvel Intermedirio, onde temos a descrio lgica dos dados; um Nvel Externo onde, so descritas as vises para grupos de usurios. No podemos deixar de lembrar ainda que o Banco de Dados garante a Independncia Lgica e Fsica dos Dados, portanto podemos alterar o esquema conceitual dos dados, sem alterar as vises dos usurios ou mesmo alterar o esquema interno, sem contudo alterar seu esquema conceitual.

Modelos de Dados
O Modelo de Dados basicamente um conjunto de conceitos utilizados para descrever um Banco de Dados. No existe uma nica forma de representao deste modelo, porm qualquer forma que permita a correta compreenso das estruturas de dados compreendidas no Banco de Dados, pode ser considerada adequada. Vamos descrever sucintamente este Modelo, pois estes sero objetos de outras disciplinas:

Modelo Orientado ao Registro So modelos que representam esquematicamente as estruturas das tabelas de forma bastante prxima a existente fisicamente. Basicamente so apresentados os registros de cada tabela (inclusive seus campos) e seus relacionamentos elementares. O Modelo Relacional, o Modelo de Rede e o Hierrquico so exemplos deste tipo de representao.

Modelo Semntico

So modelos onde existe uma representao explcita das entidades e relacionamentos. O Modelo Entidade-Relacionamento e o Funcional, so exemplos deste tipo de abordagem.

Modelo Orientado ao Objeto

So modelos que procuram representar as informaes atravs dos conceitos tpicos da Programao Orientada ao Objeto, utilizando o conceito de Classes que iro conter os objetos. Citamos os Modelos O2 e o de Representao de Objetos como exemplos tpicos desta abordagem.

O conceito de instncia
sempre muito presente, poderia ser definido como sendo o conjunto de dados que definem claramente um Banco de Dados em determinado instante. Devemos entender ento o Banco de Dados como sendo no apenas um conjunto de dados digitados, mas tambm todo o esquema e regras armazenada e controladas pelo SGBD.

Concluso
Em outras palavras, podemos dizer vieram para eliminar todo o anteriormente um programador realizava controlando o acesso, redundncia dos dados. que os SGBD, trabalho que de aplicao integridade e

Tipos de SGBD

Introduo
Podemos citar como tipos principais os Bancos de Dados Relacionais, os Hierrquicos, os de Rede, os Semnticos, os Orientados a Objetos e os Universais. Os Bancos de Dados alvo de nosso estudo sero os Relacionais.

Banco de Dados Relacional


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 descrio informal estamos preocupados com aspectos prticos da utilizao e usamos os termos tabela, linha e coluna. Na descrio formal estamos preocupados com a semntica formal do modelo e usamos termos como relao (tabela), tupla(linhas) e atributo(coluna).

Banco de Dados Relacional


Tabelas (ou relaes, ou entidades)
Todos os dados de um banco de dados relacional (BDR) so armazenados em tabelas. Uma tabela uma simples estrutura de linhas e colunas. Em uma tabela, cada linha contm 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 disponveis no equipamento. As tabelas associam-se entre si atravs de regras de relacionamentos, estas regras consistem em associar um ou vrios atributos de uma tabela com um ou vrios atributos de outra tabela. Exemplo: A tabela funcionrio relaciona-se com a tabela cargo. Atravs deste relacionamento esta ltima tabela fornece a lista de cargos para a tabela funcionrio.
FUNCIONARIO COD_FUNCIONARIO NOME_FUNCIONARIO COD_CARGO ENDERECO DAT_ADMISSAO TEL IDADE CARGO COD_CARGO CARGO SALARIO OBS

OBS

Banco de Dados Relacional


Registros (ou tuplas)
Cada linha formada por uma lista ordenada de colunas representa um registro, ou tupla. Os registros no precisam conter informaes em todas as colunas, podendo assumir valores nulos quando assim se fizer necessrio. Resumidamente, um registro uma instncia de uma tabela, ou entidade. O start da modelagem se d a partir das ENTIDADES. Uma entidade uma representao de um conjunto de informaes sobre determinado conceito do sistema. Toda entidade possui ATRIBUTOS, que so as informaes que referenciam a entidade. Para exemplificar no sistema de controle de Biblioteca, partimos do conceito principal que o emprstimo de obras por usurios da biblioteca. A partir deste conceito inicial, vamos ramificando e descobrindo novos conceitos. Podemos iniciar nosso raciocnio da seguinte forma: "Uma biblioteca possui Obras literrias que podem ser tomadas em emprstimos pelos usurios credenciados."
COD_FUNCIONARIO 01 02 03 04 NOME_FUNCIONARIO Luiz Fernando Matos Sandra Lima Ian de Abreu Pedro Lemos CAGO Projetista Programador Diretor Analista

Linhas/Tuplas/Registros

Banco de Dados Relacional


Podemos rapidamente enxergar um cadastro de livros, um cadastro de usurios e um registro de emprstimos, certo? essa viso que temos que ter ao modelarmos um banco, isto , devemos detectar as informaes que devemos armazenar. Para identificar se aquele conceito pode ser uma entidade voc deve apenas se perguntar: "Eu desejo armazenar quais informaes sobre este conceito ?" Se houver informaes a serem armazenadas, voc tem uma ENTIDADE. Exemplificando: Eu desejo armazenar os seguintes dados do livro: Ttulo, Autor, Editora, Ano, Edio e Volume. Temos ento a entidade Livro. Exemplo: O empregado Pedro uma instncia (registro) da tabela funcionrio, e a funo Analista a instncia (registro) da tabela cargo. Uma associao entre estas duas tabelas criaria a seguinte instncia de relacionamento: Pedro Analista, onde o verbo ser representa uma ligao entre os registros distintos.
COD_FUNCIONARIO NOME_FUNCIONARIO CARGO

01
02 03 04

Luiz Fernando Matos


Sandra Lima Ian de Abreu Pedro Lemos

Projetista
Programador Diretor Analista

Banco de Dados Relacional


Colunas (atributos)
As colunas de uma tabela so tambm chamadas de atributos. Ex.: O campo Nome, ou endereo de uma tabela de um BD relacional.
COD_FUNCIONARIO 01 02 NOME_FUNCIONARIO Luiz Fernando Matos Sandra Lima CARGO Projetista Programador

03
04

Ian de Abreu
Pedro Lemos

Diretor
Analista

Colunas/Atributos/Campos

Banco de Dados Relacional


Chamaremos de Chave Primria ao Atributo que definir um registro, dentre uma coleo de registros. Chave Secundria (Terciria, etc.), sero chaves que possibilitaro pesquisas ou ordenaes alternativas, ou seja, diferentes da ordem criada a partir da chave primria ou da ordenao natural (fsica) da tabela. Chamaremos de Chave Composta, aquela chave que contm mais de um atributo (Por exemplo um cadastro ordenado alfabeticamente por Estado, Cidade e Nome do Cliente, necessitaria de uma chave composta que contivesse estes trs atributos). Chamaremos de Chave Estrangeira, aquela chave que permitir a ligao lgica entre uma tabela (onde ela se encontra) com outra na qual ele chave primria.

Chaves primrias
(em ingls, "Primary Keys" ou "PK"), sob o ponto de vista de um banco de dados relacional, referem-se aos conjuntos de um ou mais campos, cujos valores, considerando a combinao de valores de todos os campos da tupla (registro), nunca se repetem e que podem ser usadas como um ndice para os demais campos da tabela do banco de dados. Em chaves primrias, no pode haver valores nulos nem repetio de tuplas.

Chaves primrias
Simplificando, quando a chave primria simples, ou seja, formada por um nico campo da tabela, esse campo no pode ter dois ou mais registros de mesmo valor e tambm no pode conter nenhum registro nulo. Se a chave primria composta, ou seja, formada por mais de um campo, os valores de cada campo podem se repetir, mas no a combinao desses valores. Exemplo: a tabela 'Livros_Autores' tem como chave primria (cod_livro, cod_autor). Podem existir nessa tabela os registros: (5, 9), (5, 10), (4, 9), (9, 5), mas no podem existir dois registros (5, 9).

Chaves primrias
Exemplo:
Cidade * CidCodi CidNome Estado * EstCodi EstNome

CidCodi e EstCodi, so chaves primrias respectivamente das tabelas Cidade e Estado.

Chave externas ou estrangeiras


Uma chave externa ou estrangeira um atributo ou uma combinao de atributos numa relao, cujos valores so necessrios para equivaler chave primria de uma relao. Uma chave estrangeira um campo, que aponta para a chave primria de outra tabela ou da mesma tabela. Ou seja, passa a existir uma relao entre tuplas de duas tabelas ou de uma nica tabela. A finalidade da chave estrangeira garantir a integridade dos dados referenciais, pois apenas sero permitidos valores que supostamente vo aparecer na base de dados. Esse tipo de atributo no permite excluso, modificao e/ou insero de dados em tabelas que estejam dependentes umas das outras("foreign key"), o que requer modificadores especiais, como cascade, por exemplo. Isso tambm exige uma maior ateno do administrador da base de dados, quanto prpria manipulao dos dados.

Chaves primrias
Exemplo:
Cidade * CidCodi CidNome EstCodi (E) Estado * EstCodi EstNome

CidCodi e EstCodi, so chaves primrias respectivamente das tabelas Cidade e Estado, enquanto EstCodi chave estrangeira na tabela de cidades. precisamente por este campo (atributo, ou coluna), que ser estabelecida a relao entre as tabelas Cidade-->Estado.

Normalizao
Os bancos de dados relacionais utilizam a normalizao de dados para evitar redundncias e possibilitar um maior desempenho nas pesquisas. Normalizao o processo de organizao eficiente dos dados dentro de um banco de dados cujos objetivos principais so: 1.Eliminar dados redundantes (por exemplo, armazenando os mesmos dados em mais de uma tabela). 2.Garantir que as dependncias entre os dados faam sentido (armazenando apenas dados logicamente relacionados em uma tabela). Existem cinco estgios de normalizao, 1, o 2, o 3, o 4 e o 5. Para um banco de dados se encontrar em cada um desses estgios ou formas (denominadas formas normais), cada uma de suas tabelas deve atender a alguns pr-requisitos. Os pr-requisitos so cumulativos, isto , para alcanar 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.

Normalizao
Exemplo: Normalizar os seguintes atributos:

N do Pedido, Nome do Cliente, Nome dos Produtos, Quantidades N do Pedido, Cdigo do Cliente, Nome dos Produtos, Quantidades Cdigo do Cliente, Nome do Cliente N do Pedido, Cdigo do Cliente, Cdigo dos Produtos, Quantidades Cdigo do Cliente, Nome do Cliente Cdigo do Produto, Nome do Produto N do Pedido, Cdigo do Cliente Cdigo do Cliente, Nome do Cliente, Cdigo do Produto, Nome do Produto N do Pedido, Cdigo do Produto, Quantidades

Normalizao
Cliente
*CliCodi CliNome

Pedido
*PedNume CliCodi (E) IteQtde

Item
PedNume (E) ProCodi (E)

Produto
*ProCodi ProNome

Lembrando que * identifica a chave primria e o (E) a chave estrangeira.

Vous aimerez peut-être aussi