Bancos de dados Sistemas de bancos de dados Professor Emiliano S. Monteiro SGBD x Arquivos de dados • Basicamente hoje podemos guardar dados em: a) bancos de dados em arquivos e b) de sistemas gerenciadores de bancos de dados. • Os bancos de dados em arquivos é o arquivo (que pode ser considerado uma das menores porções lógicas do sistema de arquivos ao qual um usuário e suas aplicações tem acesso) é o container de seus dados, dados estes que somente seus criador a aplicação que manipula este tipo de arquivo tem acesso. • Já os Sistemas Gerenciadores de Bancos de Dados (SGBD) são software capazes de guardar vários tipos de dados, grandes quantidades de dados de forma mais organizada, rápida, sofisticada, segura e estruturada. Bancos de dados em Arquivos • Qualquer arquivo no computador pode ser considerado um banco de dados do ponto de vista de seu usuário. • Por exemplo: para alguns usuários, seus arquivos de texto criados no editor de texto são um banco de dados, para outros, os arquivos de tabelas e planilhas criados em uma planilha eletrônica são um tipo de banco de dados. • Formatos populares de arquivos para armazenar dados: • DBF, XML, XLS, CSV SGBD • São programas específicos para gerenciar grandes bancos de dados. Geralmente existe um arquivo que contém todas as tabelas, índices, visões, consultas, objetos dos sistema, etc. E o SGBD é quem controla esse arquivo. É criado um arquivo por banco. • Exemplos de SGBD: SQL Server, PostgreSQL, Oracle, MySQL, etc. • O SGBD permite a integração de dados dentro da empresa, vários usuários podem acessar as mesmas parcelas de dados. • O SGBD pode ser visto como um hub para o transito de dados entre departamentos diferentes. • Isola usuários dos detalhes usados para armazenar e gerenciar as estruturas de armazenamento. Os 3 níveis da arquitetura • Nível interno: é o mais próximo ao armazenamento ao armazenamento físico (trata da forma como os dados são armazenados) • Nível externo: é o mais próximo dos usuários, é a forma como os dados são vistos pelos usuários. • Nível conceitual: é o nível abstrato que corresponde a totalidade dos dados, é a visão do conjunto total dos dados dos usuários. Nível externo (visões do usuário individual) Nível conceitual (visões do conjunto de usuários) Nível interno (visões do armazenamento) Usuário A1 Usuário A2 Programa X (linguagem Y) + SQL Programa X (linguagem Y) + SQL Esquema externo A Usuário B1 Visão externa A Programa Z (linguagem K)+ SQL Programa Z (linguagem K)+ SQL Esquema externo B Visão externa B Mapeamento A externo/conceitual Esquemas mapeados, construídos e mantidos pelo DBA Esquema conceitual Usuário B2 Usuário B3 Programa Z (linguagem K)+ SQL Mapeamento B externo/conceitual Visão conceitual Mapeamento conceitual/interno Definição de estrutura de armazenament o (esquema interno) Banco de dados armazenado (visão interna) Adaptado de: Date, C.J. Introdução a sistemas de bancos de dados. 4ª. Edição. Campus. São Paulo, 1991. p33. SGBD MariaDB Diagrama detalhado... Diagrama simplificado... Números de porta • • • • • • • Oracle MySQL SQL Server MongoDB PostgreSQL Firebird Interbase 1521 3306 1433 27017 5432, 5433 3050, 3051 3050, 3060 • Oracle número de porta: http://www.red-database-security.com/whitepaper/oracle_default_ports.html MySQL FORK MySQL OurDelta Drizzle https://launchpad.net/drizzle http://ourdelta.org/ MariaDB WebScaleSQL Percona Server https://mariadb.org/ http://webscalesql.org/ https://www.percona.com/ PostgreSQL FORK • http://pt.slideshare.net/pgconf/elephant-roads-a-tour-of-postgres-forks • https://wiki.postgresql.org/wiki/PostgreSQL_derived_databases PostgreSQL FORK • http://pt.slideshare.net/pgconf/elephant-roads-a-tour-of-postgres-forks • https://wiki.postgresql.org/wiki/PostgreSQL_derived_databases MySQL gratuito online A linguagem utilizada pelo banco • A linguagem utilizado pelo SGBM é a SQL (structured query language) – linguagem estruturada de consulta. • SQL é uma linguagem de consulta interativa como de programação. • Pode ser usada em vários programas de consulta como embutida e outras linguagens de programação (Cobol, C#, PHP, ObjectPascal, Basic, Fortran, C++, e diversas outras...) SQL • Linguagem de definição de dados (DDL – data definition language) • Principais instrução são: • Create table, create view, create index, alter table, drop table, drop view e drop index CREATE TABLE tblClientes ( PersoaID int, Nome varchar(255), CEP varchar(255), Endereco varchar(255), Cidade varchar(255), UF(255) ); SQL • Linguagem de manipulação de dados (DML – data manipulation language) • Principais instrução são: • insert, update e delete • Exemplo de insert: • INSERT INTO tblClientes (Nome, Endereço, Cidade, CEP, UF) VALUES (‘BOB',‘Av. Getulio Vargas 21',‘Cuiaba',‘78053500',‘MT’); • Exemplo de update: • UPDATE tblClientes SET Nome=‘WILL', Cidade=‘Caceres‘ WHERE Nome=‘BOB'; • Exemplo de delete: • DELETE FROM tblClientes WHERE Nome=‘WILL' AND Cidade=‘Caceres'; SQL • Linguagem de consulta de dados (DQL – data query language) • Principais instrução são: • Select • Exemplo do comando select: • SELECT Nome, Cidade FROM tblClientes WHERE Cidade=‘Caceres’ Referências