Aula_01 Introdução a Banco de Dados

Embed Size (px)

Citation preview

Banco de DadosProf. Gustavo Willam Pereira

1

Introduo a Banco de Dados- EMENTA Conceitos em Sistemas de Banco de Dados. Modelo Entidade-Relacionamento Estendido. Modelo relacional. lgebra relacional. Linguagem de consulta SQL. Restries de integridade. Dependncia funcional. Triggers. Projeto de banco de dados relacional. Normalizao. Estruturas de arquivos e meios de armazenamento. Indexao e Hashing. Processamento de consultas. Transformaes de expresses relacionais. Transaes ACID. Teoria da serializabilidade. Controle de concorrncia. Recuperao. Segurana. Novas tecnologias. Bancos de dados objetorelacional. Bancos de dados orientados a objetos.

2

Introduo Uso inicial dos computadoresprocessamento de dados numricos processamento serial linguagens de programao de baixo nvel nfase no algoritmo (fluxograma) dados internos ao programa

3

Introduo Evoluo do hardware e do softwareprocessamento de dados alfanumricos linguagens de programao de alto nvel grande volume de dados sistema de arquivos dados ainda cativos dos programas economia de tempo e memria usurios on line e batch4

Introduo Bancos de dadosautonomia dos dados em relao aos programas segurana de dados compartilhamento consultas complexas nfase nos dados

BD No Convencionais5

Conceitos Bsicos em Banco de Dados Principais ConceitosBanco de Dados (BD) Sistema de Gerncia de Banco de Dados (SGBD) Sistema de Banco de Dados (SBD) Projeto de Banco de Dados Modelos de Dados

6

Definindo Banco de Dados (BD)Um banco de dados um conjunto de arquivos relacionados entre si (Chu, 1983) Um banco de dados uma coleo de dados operacionais armazenados, sendo usados pelos sistemas de aplicao de uma determinada organizao (Date, 1985) Um banco de dados uma coleo de dados relacionados (Elmasri e Navathe, 1989)

7

Banco de Dados (BD)Um Banco de Dados um modelo (representao) de uma parte da realidade (mini-mundo). Um BD projetado, construdo e povoado com dados para um propsito especfico. Existe um conjunto de usurios e um conjunto de aplicaes utilizadas pelos usurios. Um BD pode ser gerado e mantido manualmente ou atravs de um computador. ex.: fichas de publicaes em uma biblioteca

8

Banco de Dados (BD)O BD contm informaes que circulam pela aplicao alm de abstraes de elementos da prpria aplicao. Ex.: Um BD para uma aplicao de distribuio de energia eltrica armazena informao sobre consumo mensal como tambm a descrio de cada consumidor. O BD deve tambm respeitar, a cada instante, as leis (regras, regulamentos, normas) da aplicao. Ex.: Um BD para uma aplicao bancria no deve permitir que uma conta-poupana fique com saldo negativo.9

SGBD Sistema de Gerenciamento de Banco de Dados (SGBD) uma coleo de programas que permite aos usurios criar e manter um banco de dados. SGBD um software de propsito geral que facilita o processo de definio, construo e manipulao do BD para vrias aplicaes.

10

SGBDDefinio do BD: Especificao e descrio detalhada dos tipos, estruturas e restries dos dados a serem armazenados no BD. Construo do BD: Processo de carga inicial dos dados em um meio de armazenamento controlado pelo SGBD. Manipulao do BD: Execuo de operaes de consulta e recuperao de dados. Atualizao de dados para refletir as mudanas no mini-mundo. Gerao de relatrios a partir dos dados do BD.

11

Programa de Aplicao Realiza as funes da aplicao. Ex: clculo do consumo mensal de energia eltrica, a partir dos dados de leitura dos medidores. Garante as restrio de integridade (RI) que no podem ser controladas pelo SGBD. Implementa interface e relatrios especficos. Ex: Emisso de extrato de consumo. Acessa o BD atravs do SGBD para consulta e atualizao dos dados da aplicao.

12

Programa de Aplicao

13

Sistema de Banco de Dados (SBD) Sistema de software composto pelos programas de aplicao, pelo SGBD e pelo BD, para um determinado conjunto de aplicaes.

14

Sistema de Banco de Dados (SBD)

15

Sistema de Banco de Dados (SBD)Vantagens do uso de SBDDiminui a redundncia dos dados. Padroniza a definio e o acesso aos dados, atravs

da DDL (linguagem de definio de dados) e da DML (linguagem de manipulao de dados).Assegura independncia fsica dos dados. Garante independncia lgica dos dados. Garante a consistncia dos dados em caso de falhas

de hardware ou software (S.O., SGBD, programas de aplicao).

16

Sistema de Banco de Dados (SBD)Garante a consistncia dos dados em ambiente multiusurio, onde mais de um programa pode acessar, de forma concorrente, os mesmos dados. Auxilia na manuteno das restries de integridade da aplicao, evitando que testes de consistncia sejam repetidos em programas de aplicao. O usurio tem uma viso abstrata dos dados, onde detalhes do meio de armazenamento so escondidos.

17

Sistema de Banco de Dados (SBD)

18

Independncia de DadosIndependncia lgica de dados modificaes na definio dos dados (esquema lgico), na maioria das vezes, no afetam os programas de aplicao. capacidade de mudar o esquema lgico sem necessidade de modificar programas de aplicao e esquemas externos. apenas definio de vises e mapeamentos devem ser alterados. Exemplo:acrescentar um campo a um registro acrescentar uma definio de tipo de registro19

Independncia de DadosIndependncia fsica de dados alteraes em estruturas de armazenamento (esquema fsico/interno) no afetam os programas de aplicao. capacidade de mudar o esquema interno sem necessidade de alterar o esquema lgico (ou externos) Exemplo:reorganizao fsica de arquivos criao de estruturas de acesso adicionais20

Sistema de Banco de Dados (SBD)O que se espera de um SBD:Compartilhamento de dados por aplicaes diversas Controle de autorizao de acesso a dados Redundncia de dados controladaevita duplicao de esforos reduz espao de armazenamento

21

Sistema de Banco de Dados (SBD)O que se espera de um SBD (Cont.)Acesso a dados atravs de diferentes interfaces Modelagem de relacionamentos complexos entre dados Garantia de restries de integridade da aplicao Garantia de consistncia fsica dos dados Transaes devem seguir as propriedades ACIDAtomicidade, Consistncia, Isolamento e Durabilidade

22

Sistema de Banco de Dados (SBD)O que se espera de um SBD (Cont.)Existncia de mecanismos de reconstruo Potencial para imposio de padres (modelagem e programao) Flexibilidade para definir e alterar a definio dos dados Reduo do tempo de desenvolvimento de aplicaes Desvantagens do uso de SGBDOverhead para prover segurana, controle de concorrncia, recuperao e funes de integridade.23

Sistema de Banco de Dados (SBD)Usurios do SBD: Atores e PapisAdministrador do Banco de Dados (DBA): Responsvel pelos esquemas fsico e lgico do BD. Gerencia o controle de acesso aos dados. Monitora a performance do SBD. Projetista de Banco de Dados (DB Designer) Identifica os requisitos da aplicao e com auxlio do usurio, cria o modelo conceitual do BD. Junto com o DBA, estende e modifica o modelo lgico.24

Sistema de Banco de Dados (SBD)Usurios do SBD: Atores e PapisAnalista/Programador de Aplicao (Analista de Sistemas)

Define e projeta a informatizao da aplicao, incluindo seu conjunto de programas. Usa os esquemas conceitual e lgico do BD.Usurio FinalOcasional - acessa ocasionalmente o SBD, mas pode necessitar de diferentes informaes por vez. Escreve suas consultas diretamente em linguagem de consulta. Comum - acessa o BD para incluir novos dados e consultar dados armazenados atravs de procedimentos padro. Ex. caixa de banco

25

Projeto de Banco de DadosObjetivo:Trabalho de engenharia para modelar e definir a estrutura de um banco de dados que satisfaa as necessidades de informao dos usurios de uma organizao, tendo em vista um conjunto especfico de aplicaes a serem desenvolvidas.26

Projeto de Banco de Dados Caractersticas Bsicas: ComplexidadeRequer a diviso do problema em subpartes.

Multiplicidade de TarefasRequer a utilizao de uma metodologia de projeto.27

28

29

Modelo de DadosModelo de DadosConjunto de ferramentas conceituais usadas para a descrio dos dados, relacionamentos entre os dados e regras de consistncia. Representa:tipos de dados relacionamentos restries que devem ser mantidas sobre os dados

30

Modelo de DadosVrios modelos que vm sendo desenvolvidos so classificados em trs diferentes grupos:Modelos lgicos com base em objetos Modelos lgicos com base em registros Modelos fsicos

31

Modelos de DadosModelos lgicos com base em objetosSo usados na descrio dos dados no nvel lgico e de vises. So caracterizados por dispor de recursos de estruturao bem mais flexveis e por viabilizar a especificao explcita das restries dos dados Existem vrios modelos nessa categoriaModelo Entidade Relacionamento Modelo Orientado a Objetos

32

Modelo Entidade-RelacionamentoTem por base a percepo do mundo real como um conjunto de objetos bsicos, chamados de entidades e do relacionamento entre eles. Um entidade uma coisa ou um objeto do mundo real que pode ser identificado por outros objetos.Ex: cada pessoa uma entidade As contas dos clientes de um banco tambm podem ser consideradas como entidades33

Modelo Entidade-RelacionamentoAs entidades so descritas no banco por meio de seus atributos. Um relacionamento uma associao entre entidades.Ex: um relacionamento depositante associa um cliente a cada conta que ele possui.

Alem das entidades dos relacionamentos, o modelo E-R representa certas regras, as quais o contedo do banco precisa respeitar34

Modelo Entidade-RelacionamentoUm regra importante o mapeamento das cardinalidades, as quais expressam o nmero de entidades s quais as outras entidade se relaciona por meio daquele conjunto de relacionamentos. Toda a estrutura lgica do BD pode ser expressa graficamente por meio do diagrama E-R, cujos construtores dos seguintes componentes so:35

Modelo Entidade-RelacionamentoRetngulos:Representam os conjuntos de entidades

ElipsesRepresentam os atributos

LosangosRepresentam os relacionamentos entre os conjuntos de entidades

LinhasUnem os atributos aos conjuntos de entidades e o conjunto de entidades aos seus relacionamentos36

Modelo Entidade-RelacionamentoPara ilustrar, considere parte de um sistema de banco de dados de uma instituio bancria, consistindo em clientes e contas que eles possuem. O diagrama ER correspondente mostrado na figura abaixo.

37

Modelo Orientado a ObjetosTem por base um conjunto de objetos Um objeto contem valores armazenados em variveis instncias dentro do objeto. Um objeto tambm contem conjuntos de cdigos que operam esses objetos Esses conjuntos de cdigos so chamados de mtodos. Os objetos que contm os mesmos tipos de valores e os mesmos mtodos so agrupados em classes.38

Modelos Lgicos com Base em RegistrosSo assim chamados porque o BD estruturado por meio de registros de formato fixo de todos os tipos Cada registro define um nmero fixo de campos e atributos e cada campo possui normalmente tamanho fixo Os trs modelos de dados com base em registros mais utilizados so:Modelo Relacional Modelo de Rede Modelo Hierrquico39

Modelo RelacionalUtiliza um conjunto de tabelas para representar tanto os dados como a relao entre eles Cada tabela possui mltiplas colunas e cada uma possui um nico nome.

40

Modelo Relacional

41

Modelo de RedeSo representados por um conjunto de registros As relaes entre estes registros so representadas por links (ligaes), as quais podem ser vistas pelos ponteiros

42

Modelo de Rede

43

Modelo HierrquicoSimilar ao modelo de rede, pois os dados e suas relaes so representados por registros e links. A diferena e que no modelo hierrquico os registros esto organizados em rvores.

44

Modelo Hierrquico

45

Esquema e InstnciaOs bancos de dados mudam atravs do tempo medida que informaes so inseridas ou apagadas. A coleo de informaes armazenadas no banco de dados em um determinado momento chamada de instncia do banco de dados. O projeto geral do banco de dados chamado de esquema de banco de dados. Os esquemas no mudam com freqncia.46

Esquema e InstnciaUma analogia com os conceitos de tipos de dados, variveis e valores nas linguagens de programao til aqui. Voltamos definio do tipo de registro cliente: type cliente = record nome: string; rua: string; cidade: string; end;47

Esquema e InstnciaNote que declarando o tipo cliente, no declaramos nenhuma varivel. Para declarar tais variveis numa linguagem do tipo Pascal, escrevemos:var cliente1: cliente;

O conceito de um esquema de banco de dados corresponde noo de declarao de tipo em linguagens de programao. Uma varivel de um dado tipo tem um valor particular em um determinado instante do tempo. Assim o conceito de valor de uma varivel na linguagem de programao corresponde ao conceito de uma instncia de um esquema de banco de dados.48

Esquema e InstnciaOs sistemas de bancos de dados possuem diversos esquemas subdivididos de acordo com os nveis de abstrao discutidos anteriormente. No nvel mais baixo, est o esquema fsico; No nvel intermedirio, o esquema conceitual (lgico); No nvel mais alto, um subesquema (vises). Em geral, os sistemas de bancos de dados suportam um esquema fsico, um esquema conceitual e diversos subesquemas.

49

Esquema e Instncia

50

Linguagem e Interface de BDLinguagens de Banco de DadosUm Sistema de Banco de Dados proporciona dois tipos de linguagens:Linguagem de definio de dados - DDLUsada pelo DBA para definir o esquema lgico.

Linguagem de manipulao de dados - DMLUsada para popular e alterar o BD.

51

Linguagem de Definio de Dados (DDL)O esquema de dados especificado por um conjunto de definies expressas por uma linguagem chamada DDL (Data-Definition Languagem) O resultado da compilao dos parmetros DDLs armazenado em um conjunto de tabelas que constituem um arquivo especial chamado dicionrio de dados ou diretrio de

dados52

Linguagem de Definio de Dados (DDL)Um dicionrio de dados um arquivo de metadados isto , dados a respeito de dados Em um sistema de banco de dados, esse arquivo consultado antes que o dado real seja modificado.

53

Linguagem de Manipulao dos Dados (DML)Por manipulao de dados entendemos:A recuperao das informaes armazenadas no banco de dados Insero de novas informaes no banco de dados A remoo de informaes do banco de dados A modificao das informaes do banco de dados54

Linguagem de Manipulao dos Dados (DML)A linguagem de manipulao de dados (Data Manipulation Language, DML) a linguagem que permite aos usurios fazer o acesso aos dados ou manipul-los, conforme modelo de dados apropriado. Existem basicamente dois tipos:DMLs procedurais requerem do usurio a especificao de qual dado necessrio e de como obt-lo; DMLs no-procedurais requerem do usurio a especificao de qual dado necessrio sem especificar como obt-lo.55

Linguagem de Manipulao dos Dados (DML)DMLs no-procedurais so usualmente mais fceis de aprender e usar do que DMLs procedurais. Entretanto, se um usurio no necessita especificar como obter os dados, estas linguagens podem gerar cdigo no to eficiente como o produzido por linguagens procedurais. Esta dificuldade pode ser remediada por meio de vrias tcnicas de otimizao.56

Linguagem de Manipulao dos Dados (DML)Uma consulta (query) um comando requisitando a busca de uma informao. A poro de uma DML que envolve busca de informaes chamada linguagem de consulta. Embora tecnicamente incorreto, comum utilizar os termos linguagem de consulta e linguagem de manipulao de dados como sinnimos.

57

Estrutura geral do sistemaUm sistema de banco de dados dividido em mdulos que tratam de cada uma das responsabilidades do sistema geral. Na maioria dos casos, o sistema operacional do computador fornece apenas os servios mais bsicos e o sistema de banco de dados precisa ser construdo sobre essa base. Portanto, o projeto do sistema de banco de dados precisa incluir consideraes sobre a interface entre o sistema de banco de dados e o sistema operacional.58

Estrutura geral do sistemaOs componentes funcionais de um sistema de banco de dados incluem:Gerenciador de arquivos, que gerencia a alocao do espao na armazenagem do disco e as estruturas de dados usadas para representar a informao armazenada no disco. Gerenciador do banco de dados, que fornece a interface entre os dados de baixo nvel armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema.59

Estrutura geral do sistemaComponentes funcionais de um sistema de banco de dados:Processador de consultas, que traduz os comandos numa linguagem de consulta para instrues de baixo nvel que o gerenciador do banco de dados pode interpretar. Alm disso, o processador de consultas tenta transformar uma requisio do usurio em uma forma compatvel e mais eficiente com respeito ao banco de dados, encontrando uma boa estratgia para a executar a consulta.60

Estrutura geral do sistemaComponentes funcionais de um sistema de banco de dados:Pr-compilador da DML, que converte comandos da DML embutidos em um aplicativo para chamadas de procedimento normal na linguagem hospedeira. O pr-compilador precisa interagir com o processador de consultas pra gerar o cdigo apropriado. Compilador da DDL, que converte comandos da DDL em um conjunto de tabelas contendo metadados ou "dados sobre dados".61

Estrutura geral do sistemaAdicionalmente, diversas estruturas de dados so requeridas como parte da implementao do sistema fsico, incluindo:Arquivos de dados, que armazenam o banco de dados propriamente dito. Dicionrio de dados, que armazena metadados sobre a estrutura do banco de dados. O dicionrio de dados usado com freqncia. Assim, deve-se dar grande nfase no desenvolvimento de um bom projeto e implementao eficiente do dicionrio. ndices, que fornecem acesso rpido aos itens de dados guardando determinados valores.

62

63