Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
1 Tópicos: a) Definição e Histórico b) A Necessidade da Modelagem c) Tipos de Bancos de Dados d) Níveis da arquitetura de banco de dados e) Modelo de Banco de Dados Relacional f) Exercícios propostos g) Bibliografia Conceituação de Banco de Dados U1 – cap.1 2UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua OliveiraUERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira Introdução Definição de Banco de Dados A palavra “database” é usada para descrever desde um simples conjunto de dados, como uma lista de telefones, até um conjunto complexo de ferramentas, como “SQL Server”. SQL - Structured Query Language. “SQL Server” é uma ferramenta para armazenar e manipular informações, um sistema gerenciador de banco de dados – “Database Management System (DBMS)”. Um “database” relacional precisa implementar um modelo relacional, o qual é uma maneira de descrever alguns aspectos do mundo organizacional de acordo com um conjunto de regras propostas por E. F. Codd, no fim dos anos 1960. 2 3UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua OliveiraUERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira Introdução Definição de Banco de Dados A palavra “database” é usada para descrever desde um simples conjunto de dados, como uma lista de telefones, até um conjunto complexo de ferramentas, como “SQL Server”. SQL - Structured Query Language. “SQL Server” é uma ferramenta para armazenar e manipular informações, um sistema gerenciador de banco de dados – “Database Management System (DBMS)”. Um “database” relacional precisa implementar um modelo relacional, o qual é uma maneira de descrever alguns aspectos do mundo organizacional de acordo com um conjunto de regras propostas por E. F. Codd, no fim dos anos 1960. SGBD SOFTWAREBanco de Dados sistemas usuários 4UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira � Anos 50 e início dos anos 60: � Usava fitas magnéticas - Fitas só permitem acesso sequencial � Cartão perfurado como entrada � Fim dos anos 60s e anos 70: � Discos rígidos com acesso direto � Modelos de banco de dados em rede e hierárquico � Ted Codd definiu o modelo de dados relacional � 1980s: � Modelo relacional usado em sistemas comerciais � SQL passa a ser padrão � Sistemas de banco de dados paralelos e distribuídos � Sistemas de banco de dados Object-oriented � 1990s: � Aplicações data-mining � Data warehouses: Large multi-terabyte � Inicio da Web comercial � início 2000s: � Padronização do XML � Automação da Administração de Banco de Dados (final dos anos 2000) Banco de Dados: HISTÓRICO Introdução 3 5UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua OliveiraUERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira Introdução A Utilização do Banco de Dados � Um DBMS contem informação sobre uma empresa � Coleção de dados inter-relacionados � Conjunto de programas para acessar os dados � Um ambiente eficiente de uso � Um banco de dados pode ser muito grande � Aplicações para banco de dados: � Transações bancarias � Companhias aérea � Escolas � Comercio: clientes, produtos, encomendas � Vendas Online: rastreamento de pedidos, pesquisas � Industria: produção, estoque, pedidos, fornecedores � RH: benefícios de empregados, salários Qual os benefícios de se usar banco de dados ? 1. A integração dos dados através da unificação dos mesmos. 2. O compartilhamento dos dados com os interessados. 6UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira � Projetos de engenharia são um bom exemplo da necessidade de modelos. Não é possível construir uma casa sem primeiramente definir sua planta. � Para o desenvolvimento de um software, que é abstrato por natureza, sem inicialmente definir sua arquitetura. � Em alguns projetos de engenharia, além do modelo em “papel”, são usadas maquetes para que o comportamento do sistema seja avaliado. Introdução A Necessidade da Modelagem 1) O que são modelos? - São representações esquemáticas reduzidas de alguma coisa. 2) Qual a vantagem de se usar modelos? - A principal é a economia de se avaliar o funcionamento e os custos de alguma coisa. • Cite alguns exemplos de modelos? 4 7UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira Modelo Conceitual • Representa os conceitos (dados) do domínio do problema através da técnica Modelo de Entidades e Relacionamentos. • Pode ser representado também em diferentes notações, o diagrama de classes da UML e o MER são exemplos. • É independente dos detalhes físicos de implementação, tais como: chaves estrangeiras e concorrência. MER - Modelo Entidades Relacionamentos [Chen - 1976] • Representa a memória de dados para o funcionamento do “Modelo Essencial do Sistema”. [McMenamim e Palmer - 1984] • Com base na lista de eventos o engenheiro de software deve fazer a primeira tentativa de modelo. Introdução A Necessidade da Modelagem 8UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira Introdução Tipos de Bancos de Dados Sistema de arquivos – não possuí técnica de modelagem e o “database” é armazenado no sistema de arquivos do sistema operacional. A evolução das técnicas de “database”. Fonte: Powell 2006 • Sistema de arquivos • Banco de dados hierárquico • Banco de dados em rede • Banco de dados relacional • Banco de dados orientado a objetos • Banco de dados objeto-relacional 5 9UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira Desvantagens do sistema de arquivos � Redundância e inconsistência � Arquivos com múltiplos formatos, duplicação da informação em diferentes lugares � Dificuldade no acesso � Necessidade de escrever um programa novo para cada tarefa � Problemas de integridade � Dificuldade para incluir novas restrições ou mudar as existentes � Atomicidade das atualizações � As falhas levavam os sistemas a um estado de inconsistência � Exemplo: Transferência de uma conta para outra � Acesso concorrente de múltiplos usuários � Problema de segurança Os sistemas de banco de dados resolveram todos esses problemas Fonte: Silberschatz 2006 Introdução Mecanismos de segurança do DB2 Há três mecanismos principais dentro do DB2 que permitem que um DBA implemente um plano de segurança do banco de dados: autenticação, autorização e privilégios. Fonte:http://www.ibm.com/developerworks/br/data/tutorials/db2-cert7302/section2.html 10UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira Introdução O Bancos de Dados Hierárquico O “database” hierárquico é uma estrutura em árvore invertida. As tabelas desse modelo aplicam o relacionamento “pai-filho”. Cada tabela filho possui uma única tabela pai e cada tabela pai pode possuir múltiplas tabelas filho. Suporta a relação um-para-muitos (1 ���� N). Características: 1) Ligações 1 � N 2) Não têm nome 3) Não pode ter ciclosO modelo “database” hierárquico Departamento Gerente Empresa Empregado Projeto Função Depto 2Empregado Projeto Função Depto 1 Depto 3 Acessos inválidos 6 11UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira Introdução O modelo “database” em rede permite que tabelas filho possuam mais de um pai, criando uma estrutura de tabelas tipo rede. Múltiplas tabelas pai para cada filho permite a relação muitos para muitos. No exemplo existe a relação m-n entre empregados e tarefas. Em outras palavras, empregados podem ser designados para muitas tarefas e uma tarefa pode ser designada para muitos empregados. Assim, muitos empregados possuem muitas tarefas e vice-versa. O modelo em rede é um refinamento do modelo hierárquico. A figura mostra como gerentes podem fazer parte de departamentos e empresas. O modelo em rede da figura está levando em conta que não somente cada departamento em uma empresa tem um gerente, mas também que cada empresa tem um gerente geral (um Chief Executive Officer). Designação Tipo Empregado Departamento Gerente Empresa Empregado Projeto Função O Bancos de Dados em Rede 12UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira Introdução possui Na figura a linha é notacional, significa que existem ligações entre elementos de Empresa e Departamento e mostra qual é o lado 1 e qual é o lado N. O Bancos de Dados em Rede e1 d1 d2 e2 d3 d5d4 e3 d6 e4 Departamento Empresadiagrama do esquema: diagramas de ocorrências: “owner” “member” Cada elemento do conjunto mestre (e1, e2, e3, etc.) está ligado a varias ocorrências do conjunto detalhe (d1, d2, d3, etc.). 7 13UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira Introdução Níveis da arquitetura de banco de dados Nível externo Nível conceitual Nível interno BD Acessos físicos • Define as visões externas, visões de programas aplicativos. • Define a representação intermediaria. Nível lógico que descreve os dados e os relacionamentos. • Define a representação física dos dados. View of Data SGBD 14UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira Visão externa de dados Usa a linguagem do programa da aplicação • exemplos: C, Java, Pascal, Cobol, etc. • as linguagens são suportadas por uma sublinguagem de dados, uma DSL, normalmente embutida na linguagem da aplicação. DML - Data Manipulation Language Linguagem para acessar e manipular os dados • “query language” DDL - Data Definition Language Linguagem para definir o banco de dados físico • o compilador de DDL gera um conjunto de tabelas que definem o “dicionário de dados “ do banco de dados. • o dicionário de dados é um metadado, ele contém: 1. O esquema do banco de dados 2. As restrições de integridade (chaves e relacionamentos) 3. As autorizações (permissões de acesso) Introdução Linguagens de Banco de Dados View of Data Existe uma linguagem específica para definir o esquema conceitual e físico de um SGBD. � A linguagem utilizada é a Structured Query Language (SQL), que apesar de existir um padrão definido, varia de SGBD pra SGBD. 8 15UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua OliveiraUERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira Introdução Modelo de Banco de Dados Relacional O modelo de dados serve para descrever: 1. Os dados e os relacionamentos entre os dados. 2. A semântica dos dados e as restrições entre os dados. Exemplo de tabela no modelo relacional Colunas (atributos) Linhas (tuplas) Sistema zipcar - Tabela de veículos 16UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua OliveiraUERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira Introdução Exemplo de acesso ao banco de dados Tabela: veículo � Uma pesquisa SELECT * FROM T terá como resultado todos os elementos de todas as linhas da tabela chamada T. � Partindo da mesma tabela T, a pesquisa SELECT C1 FROM T terá como resultado todos os elementos da coluna C1 da tabela T. � O resultado da pesquisa SELECT * FROM T WHERE C1=1 será todos os elementos de todas as linhas onde o valor de coluna C1 é '1'. resultado do acesso Outros comandos SQL 9 17UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira A arquitetura de um banco de dados é influenciada pela estrutura de computadores que o banco de dados funciona: � Centralizada Um único computador servidor do DBMS � Cliente-servidor O sistema está ligado a estações remotas. � Paralelo (multiprocessadores) Mais de um computador servidor do DBMS � Distribuída (geograficamente) Tipos de arquiteturas Introdução 18UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira BIBLIOGRAFIA Chen, Peter; The Entity-Relationship Model - Toward a Unified View of Data, ACM Transactions on Database Systems 1 (1): 9–36. (March 1976). C. J. Date, “Introdução a Sistemas de Bancos de Dados” – 8ª Edição”, Editora Campus, 2003. Setzer, Valdemar; Banco de Dados – conceitos, modelos, gerenciadores, projeto lógico e projeto físico; Editora Edgard Blücher Ltda., SP, 1986. Silberschatz, Avi; Korth, H; Sudarshan, S; Database System Concepts, 6th Edition, McGraw-Hill, 2005. Powell, Gavin; Beginning Database Design and Implementation; Wrox Press (2006) Sikha Bagui and Richard Earp; Database Design Using Entity- Relationship Diagrams; Auerbach Publications © 2003 Hernandez, Michael J.; Database Design for Mere Mortals™; Second Edition; A Hands-On Guide to Relational Database Design;