21
Databases Introdução

Databases - w3.ualg.ptFile system vs. SGBD ... Netezza NexusDB NonStop SQL ... SAP Sybase IQ SQL Anywhere (formerly known as Sybase Adaptive Server Anywhere andw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/... ·

  • Upload
    haduong

  • View
    244

  • Download
    5

Embed Size (px)

Citation preview

Databases

Introdução

DatabasesIntrodução Bases de dados, o que são

Objectivos e funcionalidade

BD e Sistemas de Gestão de Bases de Dados SGBD

File system vs. SGBD

Ficheiros, tabelas, classes e instâncias

Bases de dados: System R, IMS, DB2, Ingres, Oracle, Informix, Sybase, PostgreSQL, MySQL, Microsoft SQL

e as novas: Cassandra, MongoDB, CouchDB, Redis, FlockDB,

BigTable(google),….

O ”schema” (esquema): a definição da estrutura lógica da BD

Características principais da gestão de dados mediante Bases de Dados

3

Databases Base de Dados

Um conjunto de ficheiros, tabelas ou objectos lógicamente relacionados entre si onde se armazenam dados dum domínio qualquer

DADOS: o activo mais importante duma organização

Um facto conhecido com significado implicito que pode ser registado

60 anos de tecnologia de SGBD

- anos 60: ficheiros ”flat”

- BD hierárquicas (IBM/IMS)

- BD em redes (CODASYL), IDMS

- anos 70. relacionais. F. Code. Produtos comerciais durante os 80

- fim dos 80 e principios dos 90: orientadas aos objectos

- fins dos 90: ’universais’ (object/relational)

-. Anos 2000: NoSQL ou Post-SQL, distribuidas, ”data stores”, não ACID

4

DatabasesNeste processo de evolução histórica das BD:- Como obter os dados quais dados obter

- Independência dos dados da estrutura

- Ficheiros entidades objectos

- Aumento da produtividade e velocidade de acesso

- Servidores para gestão da BD, acesso concurrente

- Consistência, Segurança

- Aumento de consistência: SQL em muitas plataformas.

- Evitando Single Point of Failure (SPOF)

- Linguagens de alto nível para manipulação e acesso das BD

- Utilização inicial em mainframes e logo em PC e outros pequenos

- Distribuídas, não asseguram restrições ACID das BD relacionais

- Mais rápidas, grande quantidade de dados, para propósitos específicos outros que finanças, banca, contabilidade, etc

-

5

Databases

Novos desafios na gestão dos dados- A Web!

- Novos dados: multimédia, geográficos, séries temporais, grandes ficheiros como registos, links, dados não estruturados…

- Aparecimento de linguagens populares OO e não só: C++, Java, Javascript, Smalltalk, Phyton, Php, javascript, …..

- Data Warehouses

- Problemas de compatibilidade entre BD relacionais e OO:

dados tradicionais vs. objectos definidos com muitos tipos diferentes

Relacional: dados separados dos métodos de acesso

OO: hierarquias e subclasses: herança

- Bases de dados NãoSQL (não relacionais)

6

Databases

7

Databases: BD relacionais4th DimensionAdabas DAlpha FiveApache CassandraApache DerbyAster DataAltibaseBlackRayCA-DatacomClarionClustrixCSQLCUBRIDDaffodil databaseDataEaseDatabase Management LibraryDataphordBaseDerby aka Java DB

Empress Embedded DatabaseEXASolutionEnterpriseDBeXtremeDBFileMaker ProFirebirdGreenplumGroveSiteH2Helix databaseHSQLDBIBM DB2IBM Lotus ApproachIBM DB2 Express-CInfobrightInformixIngresInterBaseInterSystems Caché

GT.MLinterMariaDBMaxDBMemSQLMicrosoft AccessMicrosoft Jet Database Engine (part of Microsoft Access)Microsoft SQL ServerMicrosoft SQL Server ExpressMicrosoft Visual FoxProMimer SQLMonetDBMSQL (mini)MySQLNetezzaNexusDBNonStop SQLOpenbase

OpenLink Virtuoso (Open Source Edition)OpenLink Virtuoso Universal ServerOpenOffice.org BaseOracleOracle Rdb for OpenVMSPanoramaPervasive PSQLPolyhedraPostgreSQLPostgres Plus Advanced ServerProgress SoftwareRDM EmbeddedRDM ServerThe SAS systemSAND CDBMSSAP HANASAP Sybase Adaptive Server Enterprise

SAP Sybase IQSQL Anywhere (formerly known as Sybase Adaptive Server Anywhere and Watcom SQL)ScimoreDBSmallSQLsolidDBSQLBaseSQLiteSybase Advantage Database ServerTeradataTimesTentxtSQLmizanSQLUnisys RDMS 2200UniDataUniVerseVerticaVMDS

8

Databases

Sistemas de Ficheiros vs. SGBD: exemplo

Departamento

Encomendas

Departamento

Contabilidade

Departamento

Personal

Programa A Programa B Programa BPrograma A Programa BPrograma A

SistemaPreencher encomendas

SistemaPersonal

SistemaFacturação

ClientesClientes Inventario DevoluçõesPreços

Inventário Clientes Colaboradores

9

Databases

Problemas com os Sistemas de Ficheiros?• Dependência entre dados e programa Cada pgm. mantém metadados por cada ficheiro que utiliza

• Redundância (duplicação) nos Dados - Subsistemas diferentes da mesma organização tem cópias separadas dos

mesmos dados

- Existem múltiplas formatos de ficheiros, duplicação da informação em ficheiros diferentes. Isto requer + espaço, esforço e perdem-se dados e a integridade dos metadados

• Limitada partilha dos DadosNão existe um controlo centralizado dos dados. Cada aplicação tem os seus

próprios dados privados e os utilizadores tem pouca hipótese de partilhar dados fora das suas próprias aplicações

(Fundamentals of Data Systems, Elmasri/Navathe)

10

Databases

Problemas com os Sistemas de Ficheiros?• Longo tempo de desenvolvimento

Cada pgm. deve desenhar de raiz os seus formatos de ficheiros

• Longo tempo para manutenção dos programas

e portanto altos custos para IT na organização

• Difícil manter a integridade dos dados

Alterar as restrições dos dados, ou adicionar novas restrições

(Fundamentals of Data Systems, Elmasri/Navathe)

11

Databases

Solução: Uma BD única e centralizada em toda a organização

As aplicações estão separadas dos dados e as definições de todos os dados utilizados definidos num mesmo esquema, que armazena toda a semântica dos dados utilizados.

Assim, a BD é uma colecção coerente e lógica dos dados da organização, desenhada com um propósito específico e para utilizadores designados

12

Databases

Processadorqueries

Gestorarmazenamento

GestorTransacções(integridade)

DadosMetadados

Fonte: J. Ullman, A first course in Database Systems

Modificações Interrogação Modificações esquema genérica, API dos dados INPUT: {

GestorFicheiros

(disk blocks)

GestorBuffer (RAM)

Atomicidade

Consistência

Isolamento

Durabilidade

Componentes principais dum SGBD

Query = Interrogação

13

Databases

Nível externo: utilizadores

Nível intermédio, conceitualização: Esquema

Nível interno: os dados e Metadados

Os 3 níveis da arquitectura duma BD (C.J. Date)

14

Databases

Atomicidade:Toda a transacção completada ou nada feito.(no caso o sistema crashar ...)

Consistência (integridade)Os dados devem “bater certo” após uma transacção. Os dados devem cumprir

as restrições impostas sobre eles no fim, mesmo que transitoriamente estas possam serem violadas. Só se começa aquelo que se pode terminar.

IsolamentoDuas transacções a correr simultaneamente os seus efeitos devem ficar

isolados. Deve acontecer tal como se só uma transacção tivesse ocorrido.

A execução duma transacção não pode prejudicar uma outra.

DurabilidadeTerminada uma transacção, os seus efeitos devem perdurar, mesmo se o

sistema “crachar” (system crash)

BD Relacionais (e não só) respeitam o principio ACID.Requerimentos essenciais para uma transacção: “Acid compliant”

15

Databases

Aplicar o principio ACID não é facil

Problemas nas comunicações, falha do disco, falha no sistema,

Necessidade de actualizar os índices, alterar registos o criar novos, etc.

A ideia do ACID é que a BD possa idealmente executar todas estas tarefas de uma vez e rapidamente

Técnicas para isto:

A) Escrever o registo completo, ANTES de escrever na BD. Assim, se a operação falhar, a BD pode voltar ao seu estado anterior

B) Escrever uma cópia sombra numa BD imagem. Quando a transacção for fiável, actualizar a BD ou substituir cópia.

Em ambos processos, bloquear a BD ao nível que corresponda para executar as operações desejadas

BD Relacionais respeitam o principio ACID.

16

Databases

Ficheiros

Uma colecção de registos relacionados entre si: facturas, alunos, clientes, adn, doentes. Armazenados com um mesmo nome numa unidade.

Tabelas

Um conjunto de tuplos onde as colunas representam atributosRelações

Entidades do sistema expressadas como relaciones.

Semelhante como as tabelas, mas as relações não podem ter linhas repetidas

Uma BD relacional está justamente formada por relações (~ tabelas)

Objetos

Os dados vistos como objetos. Os objetos tem atributos e propriedades. Eles tem os seus próprios métodos de acesso.

Instâncias

As classes se “instanciam” em objetos: Ex.: a classe cavalo. Objeto: um cavalo lusitano preto chamado “Demónio”

17

Databases

O esquema (‘schema’)Estrutura onde armazenamos a definição lógica de todos os elementos que

formam uma BD. Normalmente não mudará com frequência.

Relações: os dados específicos de cada entidade. Tabelas.

O tipo que terá cada dado. No caso de OO: ADT (Abstract Data Type)

Relações entre estas entidades. Chaves

Restrições nos dados, nas operações possíveis; triggers

ANTES DE SE DEFINIR O ESQUEMA precisamos inicialmente informação de contexto para criar a BD:

Os requisitos do sistema

E precisamos definir que tipo de BD queremos construir: relacional, OO, universal, outra

Nome, tipo de charset por defeito que utilizarão os dados, password para acesso, utilizadores da BD, permissões em geral

18

DatabasesCaracterísticas principais da filosofia das BD

- Natureza auto-descritiva do SGBD. O esquema metadados

- Permite que o software de SGBD trabalhe com aplicações diferentes

- Independência entre programas e dados. Permite alterar as estruturas de dados sem ter que mudar o acesso aos programas do SBD

- Abstracção de Dados. O utilizador visualiza os dados sem saber dos detalhes do armazenagem e a estrutura interna dos ficheiros

- Suporte de múltiplas vistas dos dados. Cada utilizador pode ter uma visão diferente da BD, que descreve apenas os dados que interessam.

- Partilha simultânea dos dados: O SGBD tem mecanismos de controlo da concorrência simultânea. Cada transacção é completada correctamente

- Mecanismos de segurança para recuperação e backup dos dados

- Permissõe para acesso aos dados: quem pode fazer o que, onde e como

-OLTP: online transaction processing: centenas de transacções executadas por segundo. Cada utilizador atribuído um processo específico

19

Databases e SGBDAtenção:Atenção:

Database ≠ Sistemas de Gestão de Bases de Dados

A primeira se refere aos dados e a estrutura existente para seu armazenamento.

O SGBD é o software que gere a Base de Dados.

Assegura a correta manipulação, segurança, integridade e consistência dos dados, assim como permite operações nela utilizando alguma linguagem de programação. Sql por exemplo.

Alguns exemplos

O primeiro de todos System R (IBM), logo IMS (IBM) e CODASYL (redes)

Maiores produtos comerciais hoje: DB2, Oracle, Informix, Sybase, MS SQL Server, PostgreSQL.

Paradox, Btrieve, Clipper,Progress, Ingres, MaxDB, mSQL, ...

Open Source: PostgreSQL, MySQL. Para pequenas BD: MS/Access

Anos 2000, SQLite, XML-Database: armazena dados no formato XML

NoSQL: Cassandra (Apache) em servidores distribuídos (originalmente Facebook)

20

DatabasesMuitos tipos de BD dependendo do seu propósito

BD activas, BD analíticas, Data Wharehouses, BD na nuven (cloud

databases), Distributed databases, BD Espaciais, BD orientadas a

documentos, Embedded Databases, Main memory DB, External

databases, BD gráficas. (Um tipo de NOSQL database) Armazena

nos, arestas e propriedades

Hipermedia BD: A WWW pode ser considerada um tipo de BD, RAM

databases, Bases de dados de Conhecimento: Knowledge Bases, BD

temporais, BD não estruturadas

Você seria capaz de criar a sua própria BD para os seus propósitos?

21

Databases

FIM DA INTRODUÇÃO