Introdução
Introdução Bases de dados, o que são Objectivos e funcionalidade Databases 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
Base de Dados Databases 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 3
Neste 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 - 4
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) 5
6
: BD relacionais 4th Dimension Adabas D Alpha Five Apache Cassandra Apache Derby Aster Data Altibase BlackRay CA-Datacom Clarion Clustrix CSQL CUBRID Daffodil database DataEase Database Management Library Dataphor dbase Derby aka Java DB Empress Embedded Database EXASolution EnterpriseDB extremedb FileMaker Pro Firebird Greenplum GroveSite H2 Helix database HSQLDB IBM DB2 IBM Lotus Approach IBM DB2 Express-C Infobright Informix Ingres InterBase InterSystems Caché GT.M Linter MariaDB MaxDB MemSQL Microsoft Access Microsoft Jet Database Engine (part of Microsoft Access) Microsoft SQL Server Microsoft SQL Server Express Microsoft Visual FoxPro Mimer SQL MonetDB MSQL (mini) MySQL Netezza NexusDB NonStop SQL Openbase OpenLink Virtuoso (Open Source Edition) OpenLink Virtuoso Universal Server OpenOffice.org Base Oracle Oracle Rdb for OpenVMS Panorama Pervasive PSQL Polyhedra PostgreSQL Postgres Plus Advanced Server Progress Software RDM Embedded RDM Server The SAS system SAND CDBMS SAP HANA SAP Sybase Adaptive Server Enterprise SAP Sybase IQ SQL Anywhere (formerly known as Sybase Adaptive Server Anywhere and Watcom SQL) ScimoreDB SmallSQL soliddb SQLBase SQLite Sybase Advantage Database Server Teradata TimesTen txtsql mizansql Unisys RDMS 2200 UniData UniVerse Vertica VMDS 7
Sistemas de Ficheiros vs. SGBD: exemplo Departamento Encomendas Departamento Contabilidade Departamento Personal Programa A Programa B Programa A Programa B Programa A Programa B Sistema Preencher encomendas Sistema Facturação Sistema Personal Clientes Inventario Devoluções Preços Inventário Clientes Colaboradores 8
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 Dados Nã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) 9
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) 10
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 11
Componentes principais dum SGBD INPUT: { Modificações Interrogação Modificações esquema genérica, API dos dados Gestor Buffer (RAM) Gestor Ficheiros (disk blocks) Processador queries Gestor armazenamento Gestor Transacções (integridade) Atomicidade Consistência Isolamento Durabilidade Query = Interrogação Fonte: J. Ullman, A first course in Database Systems Dados Metadados 12
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) 13
BD Relacionais (e não só) respeitam o principio ACID. Requerimentos essenciais para uma transacção: Acid compliant 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. Isolamento Duas 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. Durabilidade Terminada uma transacção, os seus efeitos devem perdurar, mesmo se o sistema crachar (system crash) 14
BD Relacionais respeitam o principio ACID. 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 15
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 atributos Relaçõ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 16
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 17
Caracterí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 18
Atenção: Databases e SGBD 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) 19
Muitos 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? 20
FIM DA INTRODUÇÃO 21