Vous êtes sur la page 1sur 29

09/06/2014 MLBP - Banco de Dados I 1

Banco de Dados I
Independncia de Dados
09/06/2014 MLBP - Banco de Dados I 2
Dependncia de Dados (I)
Aplicaes antigas ->Dependentes de dados
A maneira como os dados esto representados
fisicamente e a tcnica para obter acesso aos dados
So determinadas pelos requisitos da aplicao
considerada
O conhecimento dessa representao fsica e tcnica
de acesso est embutido no cdigo da aplicao
Impossvel mudar a representao fsica ou tcnicas de
acesso sem afetar a aplicao
09/06/2014 MLBP - Banco de Dados I 3
Dependncia de Dados (II)
Em um sistema de bancos de dados a
dependncia de dados indesejvel
Aplicaes diferentes exigiro vises diferentes
dos mesmos dados
O DBA deve ter liberdade para alterar a
representao fsica ou a tcnica de acesso em
resposta a mudana nos requisitos, sem ter de
modificar as aplicaes
Novos tipos podem ser acrescentados, prioridades
das aplicaes podem mudar, etc.
09/06/2014 MLBP - Banco de Dados I 4
Independncia de Dados
Imunidade das aplicaes a alteraes nas
representao fsica ou tcnicas de acesso
Arquitetura para sistemas de bancos de
dados baseada em 3 nveis de abstrao
Nvel Interno
Descreve o modo como os dados esto armazenados
Nvel Conceitual
Descreve os dados que esto armazenados no banco de dados
Nvel Externo
Descreve o modo como os dados so vistos pelos usurios
09/06/2014 MLBP - Banco de Dados I 5
Alteraes da Representao
Armazenada (I)
Representao de caracteres
Um campo de cadeia de caracteres pode ser
armazenado usando qualquer conjunto de
caracteres Ex. ASCII, EBCDIC, Unicode.
Codificao de dados
Pode ser desejvel representar dados armazenados
por valores codificados - Ex. o campo Cor_Pea que
uma aplicao v como cadeia de caracteres pode
ser armazenado como um nico dgito.
1 = azul, 2 = preto, etc.
09/06/2014 MLBP - Banco de Dados I 6
Alteraes da Representao
Armazenada (II)
Materializao de dados
Um campo lgico geralmente corresponde a um
campo armazenado (direto)
Um campo lgico pode corresponder a um
conjunto de dados armazenados (indireto)
Exemplo: Campo lgico quantidade total
pode ser materializado pela totalizao de uma
srie de campos armazenados quantidade
09/06/2014 MLBP - Banco de Dados I 7
Alteraes da Representao
Armazenada (III)
Estrutura de registros armazenados (I)
Dois ou mais registros podem ser combinados
em um s
O registro lgico de uma aplicao poderia
consistir em um subconjunto apropriado do
registro armazenado
Num_ pea Cor_pea Num_ pea Peso_pea
Num_ pea Cor_pea Peso_pea
09/06/2014 MLBP - Banco de Dados I 8
Alteraes da Representao
Armazenada (IV)
Estrutura de registros armazenados (II)
Um registro pode ser dividido em vrios
Partes utilizadas com menos freqncia poderia
ser armazenadas em dispositivos mais lentos
Num_ pea Cor_pea Peso_pea
Num_ pea Cor_pea Num_ pea Peso_pea
09/06/2014 MLBP - Banco de Dados I 9
Alteraes da Representao
Armazenada (V)
Estrutura de arquivos armazenados
Um arquivo pode ser implementado fisicamente
no meio de armazenamento de vrias maneiras
distintas
Contido em um nico volume de armazenamento
(um nico disco)
Espalhado entre vrios volumes
Pode estar indexado por um ou mais ndices, etc.
Nada deve afetar as aplicaes (a no ser o
desempenho)
09/06/2014 MLBP - Banco de Dados I 10
Implicaes da Independncia
de Dados
O banco de dados pode crescer sem afetar as
aplicaes
Novos campos podem ser adicionados a um registro
Novos tipos de registros podem ser adicionados (e
novos arquivos)
Independncia de Dados
Os sistemas relacionais teoricamente so capazes de
proporcionar
Os sistemas existentes a oferecem em diferentes graus
09/06/2014 MLBP - Banco de Dados I 11
Bancos de Dados I
Arquitetura de um SGBD
09/06/2014 MLBP - Banco de Dados I 12
Arquitetura de um SGBD (I)
Arquitetura ANSI/SPARC
ANSI/SPARC Study Group on Database Management Systems
Ela se divide em trs nveis
Nvel Interno
Descreve o modo como os dados esto armazenados
Nvel Conceitual
Descreve os dados que esto armazenados no banco de dados
Nvel Externo
Descreve o modo como os dados so vistos pelos usurios
09/06/2014 MLBP - Banco de Dados I 13
Arquitetura de um SGBD (II)
Nvel Externo
(Vises de usurios individuais
Nvel Conceitual
(Vises da comunidade de usurios
Nvel Interno
(Vises do meio de armazenamento
09/06/2014 MLBP - Banco de Dados I 14
Banco de Dados de uma
Escola
Esquema Conceitual
estudantes(sid:string, nome:string, login:string,
idade:integer)
cursos(cid:string, cnome:string, creditos:integer)
matricula(sid:string, cid:string)
Esquema Fsico
Relaes guardadas como arquivos desordenados
ndices na primeira coluna de estudantes
Esquema Externo
info_curso(nomec:string, creditos:integer)
09/06/2014 MLBP - Banco de Dados I 15
Exemplo
Externo PL/I Externo Cobol
DCL 1 EMPP, 01 EMPC
2 EMP# CHAR(6), 02 EMPNO PIC X(6).
2 SAL FIXED BIN(31); 02 DEPTNO PIC X(4).
Conceitual
EMPREGADO
NMERO_EMPREGADO CHARACTER (6)
NMERO_DEPARTAMENTO CHARACTER (4)
SALRIO NUMERIC(5)
Interno
EMP_ARMAZENADO BYTES=20
PREFIXO TYPE=BYTE(6),OFFSET=0
EMP# TYPE=BYTE(6),OFFSET=6,INDEX=EMPX
DEPTO# TYPE=BYTE(4),OFFSET=12
PAGTO TYPE=FULLWORD,OFFSET=16
09/06/2014 MLBP - Banco de Dados I 16
Mapeamento
Os itens de dados tm nomes diferentes em
certos pontos
Nmero de Empregado na viso
PL/I EMP#
Cobol EMPNO
Conceitual NMERO_EMPREGADO
Interna EMP#
O sistema deve ser informado dessas
correspondncias-> mapeamento entre vises
09/06/2014 MLBP - Banco de Dados I 17
Linguagem
Hospedeira +
SubLing
Linguagem
Hospedeira +
SubLing
Linguagem
Hospedeira +
SubLing
Usurio 1 Usurio 2 Usurio n
Viso Externa A
Viso Externa B Esquema
Externo A
Esquema
Externo B
Viso Conceitual
Mapeamento
externo/conceitual A
Mapeamento
externo/conceitual B
SGBD
...
BD armazenado Viso Interna
Mapeamento
conceitual/interno
Definio da
estrutura de
armazenamento
Esquema Interno
Esquema
Conceitual
09/06/2014 MLBP - Banco de Dados I 18
Linguagem e Sublinguagem
Linguagem depende do usurio
Programao convencional
Proprietria especfica
Consulta
Sublinguagem
um subconjunto da linguagem completa relacionado
de modo especfico ao objetos e operaes de banco de
dados
Embutida na linguagem hospedeira
Linguagem hospedeira -> variveis locais, operaes de
clculos, controles de desvio, etc.
uma combinao de uma DDL e uma DML
09/06/2014 MLBP - Banco de Dados I 19
Linguagem de Definio de
Dados (DDL)
Fornece uma notao para definir o esquema do
banco de dados
Ex1. create table conta (
numero_conta char(10),
saldo integer);
Ex2. create view V conta_x as (F join FP) where #P = P2);
Compilador de DDL gera um conjunto de tabelas
que so armazenadas em dicionrio de dados
Dicionrio de dados contm metadados (dados sobre
dados) -> Todos as definies dos esquemas,
mapeamentos, restries de segurana e integridade, etc.
09/06/2014 MLBP - Banco de Dados I 20
Linguagem de Manipulao
de Dados (DML)
Linguagem para acessar e manipular os dados
organizados por um modelo apropriado no BD
Tambm conhecido com linguagem de consulta SQL
Duas classe de linguagens
Procedimental usurio especifica quais dados so
necessrios e como obt-los
No procedimental usurio especifica quais dados so
necessrios sem especificar como obt-los
09/06/2014 MLBP - Banco de Dados I 21
Mapeamentos (I)
(Um) Mapeamento conceitual/interno
Define a correspondncia entre a viso conceitual
conceitual e o banco de dados armazenado
(Vrios) Mapeamento externo/conceitual
Define a correspondncia entre uma viso externa
especfica e a viso conceitual


09/06/2014 MLBP - Banco de Dados I 22
Mapeamentos (II)
Mapeamento conceitual/interno
Independncia de dados fsica
Os usurios e os programas dos usurios so
imunes a mudanas na estrutura fsica
Mapeamento externo/conceitual
Independncia de dados lgica
Os usurios e os programas dos usurios so
imunes a mudanas na estrutura lgica

09/06/2014 MLBP - Banco de Dados I 23
SGBD
o software que trata de todo acesso ao BD.
Um usurio faz um pedido de acesso usando uma
determinada sublinguagem de dados (em geral, SQL)
O SGBD intercepta o pedido e o analisa
O SGBD inspeciona, por sua vez, o esquema externo
para esse usurio, o mapeamento externo/conceitual, o
esquema conceitual, o mapeamento conceitual/interno e
a definio da estrutura de armazenamento
O SGBD executa as operaes necessrias sobre o
banco de dados armazenado
09/06/2014 MLBP - Banco de Dados I 24
Funes de um SGBD (I)
Definio de dados
Deve aceitar definies de dados
vises e mapeamentos
Fonte -> objeto
Deve incluir componentes de processador de DDL
ou compilador para cada DDL
09/06/2014 MLBP - Banco de Dados I 25
Funes de um SGBD (II)
Manipulao de dados
Deve ser capaz de lidar com solicitaes de usurios
buscar, atualizar, excluir, etc.
Deve incluir componentes de processador de DML ou
compilador para cada DML
As solicitaes de usurios
Planejadas
A necessidade foi prevista com antecedncia - programas
aplicativos
No-planejadas
A necessidade no foi prevista com antecedncia
processador de linguagem de consulta
09/06/2014 MLBP - Banco de Dados I 26
Funes de um SGBD (III)
Otimizao e execuo
As requisies de DML devem ser processadas
pelo componente otimizador, cujo propsito
determinar um modo eficiente de implementar a
requisio
As requisies otimizadas so ento executadas
Considere a seguinte solicitao
RESULTADO := (EMP WHERE P# = E4) {SALARIO};
09/06/2014 MLBP - Banco de Dados I 27
Funes de um SGBD (IV)
Otimizao e execuo (cont.)
Existem pelo dois modos de executar o acesso
aos dados
Fazendo busca seqencial fsica da varivel EMP
at encontrar;
Se houver um ndice sobre a coluna EMP#, atravs
desse ndice acessa diretamente os dados exigidos;
Dada qualquer solicitao o otimizador far essa
escolha de estratgia:
Quais variveis so referenciadas, quais ndices existem,
qto ndices so seletivos, que operaes esto envolvidas.

09/06/2014 MLBP - Banco de Dados I 28
Funes de um SGBD (V)
Segurana e integridade de dados
Deve monitorar requisies de usurios e
rejeitar toda tentativa de violar as restries de
integridade e segurana definidas pelo DBA.
Dicionrio de dados
Deve fornecer uma funo de dicionrios de
dados (DD).
09/06/2014 MLBP - Banco de Dados I 29
Principais funes e componentes de um SGBD

Vous aimerez peut-être aussi