Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Disciplina: Sistemas Gerenciadores de Banco de Dados Prof.: Fernando Hadad Zaidan Unidade 1 Imagem: BARBIERI, Carlos. Créditos do Material Original: Prof. Fernanda Farinelli e Rogério Morais Rocha Adaptação e complementos: Prof. Fernando Zaidan Unidade 1 Material Original: Prof. Fernanda Farinelli e Rogério Morais Rocha Adaptação e complementos: Prof. Fernando Zaidan Objetivos • Contextualizar o aluno em relação ao conceito de sistema gerenciador de banco de dados (SGBD) e seu papel na criação de soluções para uma organização. Origem dos Dados Origem dos Dados No tempos antigos no Oriente Médio os pastores controlavam seus rebanhos com pedras. Por volta de 3000 a.C. era usado símbolos de argila com marcas especiais, que eram lacrados em vasos de argila. Origem dos Dados Os símbolos representavam a quantidade de mercadorias enviadas. Registros de textos em argila, utilizando pictogramas, números e ideogramas, que descreviam as transações de negócio. Origem dos Dados No século XVII iniciou a preocupação com o processamento dos dados “automaticamente”. No final do século XIX surgiu o conceito de cartões perfurados Nas décadas de 1870 e 1880 surgiu a primeira forma de armazenamento moderno de dados, a fita perfurada. Desafios dos Dados O crescimento dos dados nas empresas A necessidade de facilitar o acesso aos dados A segurança dos dados A recuperação dos dados O que é DADO? • Está puro na natureza. • Valor solto. • O significado depende do universo. • Denota um fato que pode ser registrado e possui um significado implícito. – Exemplos: Verde, Alto, Magra, Av. JK, 01/01/2008 “Fato do mundo real que está registrado e possui um significado implícito no contexto de um domínio de aplicação”. O que é INFORMAÇÃO? • É um valor para objetivo determinado. • Denota uma organização em relação a um conteúdo ou uma novidade. – Exemplos: O pincel é verde. Daniela é magra. O prédio é alto. “Fato útil que pode ser extraído direta ou indiretamente do BD”. Dado X Informação • Podemos extrair dados das informações. • Podemos gerar informações a partir dos dados. • Um computador não processa informações, e sim dados para gerar informação. Dado X Informação • Um dado fornece informação (visão) diferente, de acordo com o universo. – Exemplos: • O pincel é verde. • A camisa do América-MG é verde. • Na primavera, a vegetação fica mais verde. Conceito Banco de Dados • “É uma coleção de dados inter-relacionados, representando informações sobre um domínio específico” (Korth). • “Coleção de dados relacionados” (Elmasri e Navathe). • “Coleção de dados operacionais armazenados, sendo usados pelos sistemas de aplicação de uma determinada organização” (Date). Banco de Dados • Coleção compartilhada de dados, interrelacionados, que atende a necessidades de múltiplos tipos de usuários que utilizam visões diferentes em suas aplicações. • Banco de Dados = Dados + Modelo de Dados – Modelo de dados: Descrição dos dados – Esquema de BD: Gráfico ou texto que especifica o modelo. – Dicionário de Dados: Conj. de arquivos que armazena o modelo. Sistemas de Processamento de Arquivos Universidade Controle Administrativo Controle Acadêmico Professores Turmas Alunos Disciplinas Salas Disciplinas Controle de Pessoal Deptos Funcionários Turmas Professores Institutos Deptos Sistemas de Processamento de Arquivos • Situação: – Cada aplicação da organização com seu conjunto de dados. – Descrição dos dados fica dentro das aplicações. – Não existe compartilhamento de dados entre as aplicações. Sistemas de Processamento de Arquivos • Problemas: – redundância de dados. – difícil manutenção dos dados. – falta de uma padronização na definição dos dados. – não há preocupação com a segurança dos dados (segurança de acesso e segurança contra falhas). Necessidade de um BD • Melhor organização e gerência dos dados. • Controle centralizado dos dados. • Diminuir a redundância dos dados. – Inconsistência. – Redigitação. • Compartilhamento de dados entre aplicações. Sistemas de Processamento de Banco de Dados Universidade Controle Acadêmico Alunos Disciplinas Professores Funcionários Turmas Salas Controle Administrativo Deptos Institutos Controle de Pessoal Sistemas de Processamento de Banco de Dados • Vantagens: – Dados armazenados em um único local físico. – Dados compartilhados pelas aplicações. – Independência dos dados. – Aplicações não se preocupam com a gerência dos dados. Propriedades Implícitas de BD • É uma coleção logicamente coerente de dados com algum significado inerente. • É projetado e construído com dados para um propósito específico. • Possui grupo de usuários e aplicações que os usuários utilizam. • Representa um aspecto do mundo real. Um banco de dados tem.... • • • • • Alguma fonte de onde os dados são derivados. “Taxa” de interação com eventos do mundo real. Audiência interessada em seu conteúdo. Quantidade de dados. Variação de complexidade: – Agenda pessoal X Controle da receita federal. • Criação e manutenção manual ou gráfica. Sistema Gerenciador de Banco de Dados - SGBD • Software cujo objetivo principal é gerenciar o acesso e a correta manutenção dos dados armazenados em um banco de dados. • Sistema que possui recursos capazes de manipular as informações do banco de dados e interagir com o usuário. Sistema Gerenciador de Banco de Dados - SGBD • Software que auxilia no gerenciamento (criação, manutenção e utilização) do dados em um sistema de banco de dados e garante a integridade e segugança dos dados. • Exemplos de SGBDs são: Oracle, SQL Server, DB2, PostgreSQL, MySQL, Interbase, Firebird, entre outros. BD X SGBD • BD objetivo é oferecer uma visão "abstrata" dos dados aos usuários. • SGBD responsável por controlar os detalhes referentes a forma como estes dados estão armazenados e mantidos não interessa aos usuários, mas a disponibilidade eficiente destes dados é que são fundamentais. Funções Básicas de um SGBD • Provê métodos de acesso: – DDL (Data Definition Language) – DML (Data Manipulation Language) – DCL (Data Control Language) • Integridade semântica: garantia de dados sempre corretos com relação ao domínio de aplicação. Funções Básicas de um SGBD • Concorrência: evitar conflitos de acesso simultâneo a dados por transações. • Independência: transparência da organização dos dados. – Níveis de independência: Física e Lógica. • Segurança: evitar violação de consistência dos dados, segurança de acesso (usuários e aplicações), segurança contra falhas. Sistemas de Banco de Dados Sistema de Banco de Dados • Objetivos de um SBD: – Isolar o usuário dos detalhes internos do BD (promover a abstração de dados). – Promover a independência dos dados em relação às aplicações, ou seja, tornar independente da aplicação, a estratégia de acesso e a forma de armazenamento. Sistema de Banco de Dados • Vantagens: – – – – – – – – rapidez na manipulação e no acesso à informação, redução do esforço humano (desenvolvimento e utilização), disponibilização da informação no tempo necessário, controle integrado de informações distribuídas fisicamente, redução de redundância e de inconsistência de informações, compartilhamento de dados, aplicação automática de restrições de segurança, redução de problemas de integridade. Conceitos Básicos em BD • INDEPENDÊNCIA DE DADOS: é o principal objetivo que deve ser alcançado pelo Banco de Dados. Consiste na capacidade de permitir alterações na descrição dos dados (como inclusão de novas informações) sem que os sistemas e/ou aplicações tenham de ser alterados. Dentro desta visão os programas interagem com a visão lógica dos dados, não com sua localização física. Conceitos Básicos em BD • CONTROLE DE REDUNDÂNCIA DOS DADOS: controle centralizado dos dados compartilhados por diversas aplicações; reduz a repetição de dados a um mínimo justificável e aceito apenas por questões de desempenho. Conceitos Básicos em BD • COMPARTILHAMENTO DE DADOS: os dados podem ser compartilhados por mais de um usuário. • GARANTIA DE INTEGRAÇÃO DOS DADOS: inibir o acesso a um determinado dado por uma aplicação quando esse mesmo dado já tiver sido lido para modificação por outra aplicação. Conceitos Básicos em BD • SEGURANÇA DE DADOS: o conceito de segurança abrange procedimentos de validação e controle, garantia de integridade e controle de acesso, que visa resguardar o Banco de Dados de uma possível perda ou destruição dos dados por falha de programa ou de equipamento. Conceitos Básicos em BD • PRIVACIDADE DOS DADOS: são controles que devem ser estabelecidos para que os dados possam ser acessados somente por pessoa autorizada. • RELACIONAMENTO ENTRE DADOS: o relacionamento entre os dados fixados em arquivos diferentes deve ser controlado de maneira automática (sem participação do programador). Conceitos Básicos em BD • CONTROLE DO ESPAÇO DE ARMAZENAMENTO: mecanismos de controle de acesso do espaço alocado, do espaço real utilizado e da disponibilidade de espaço no SGBD. Além disso, deve incorporar técnicas de otimização do armazenamento, tais como compressão e reaproveitamento de espaços livres (liberados). Usuários de um SGDB Usuários dos SGBDs • O desenvolvimento, a manutenção e a utilização de um banco de dados são executados por diferentes atores: – – – – Administrador de dados (AD) Administrador de banco de dados (DBA) Analista de sistemas Usuário final Administrador de Dados Responsabilidades: – – – – – – – – Coordenação dos Dados Planejamento dos Dados Padrão dos Dados Ligação com Analistas de Sistemas e Programadores Treinamento Arbitragem de Disputas e Autorização de Uso Documentação e Publicidade Vantagem Competitiva Administrador do Banco de Dados Responsabilidades: Monitoramento do desempenho do SGBD Detecção e correção de erros Monitoramento da segurança e uso do SGBD Operações de dicionário de dados Manutenção de software e dados do SGBD Projeto de banco de dados Analista de Sistemas Responsabilidades: Conhecer a realidade do usuário final Levantamento de requisitos Elaborar caso de uso Atuar junto ao programador Atuar junto ao administrador de dados Manter o usuário final informado Testar o que foi desenvolvido pelo programador Apresentar resultados para usuário final Implantar o sistema Usuário Final Responsabilidades: Apresentar de forma clara os processos ao Analista de Sistemas Esclarecer a regra negócio da empresa Acompanhar o desenvolvimento do sistema Efetuar os testes Participar da implantação do sistema RELACIONAMENTOS Binário: Entre duas entidades Cardinalidade: Um para UM | | Um para Muitos | <Muitos para Muitos -> <Modalidade: Número mínimo de ocorrências de entidades que podem estar envolvidas em um relacionamento. 0 | Dados de Interseção: Combinação ou a associação entre entidades. Entidade Associativa: Inclui quaisquer dados de interseção que descrevem o relacionamento. Relacionamentos Unários: Associam ocorrências de um tipo de entidade com outras ocorrências do mesmo tipo de entidade. Um para Um – Suponha na entidade vendedor, criamos o relacionamento reserva, que indica que para cada vendedor temos um vendedor reserva. Um para Muitos – Cada vendedor é gerenciado por exatamente um gerente de vendas. Muitos para Muitos – Um produto pode ser parte de nenhum outro produto ou parte de vários outros produtos. RELACIONAMENTO TERNÁRIO Envolve três tipos diferentes de entidades. Exemplo: Vendedor, Clientes e Produtos MODELO DE DADOS Modelo para organização dos dados de um BD. Define um conjunto de conceitos para a representação de dados. exemplos: entidade, tabela, atributo, ... Existem modelos para diferentes níveis de abstração de representação de dados • modelos conceituais • modelos lógicos • modelos físicos MODELO CONCEITUAL • Representação com alto nível de abstração – modela de forma mais natural os fatos do mundo real, suas propriedades e seus relacionamentos – independente de SGBD – preocupação com a semântica da aplicação MODELO LÓGICO • Representa os dados em alguma estrutura (lógica) de armazenamento de dados – também chamados de modelos de BD – dependente de SGBD – exemplos • modelo relacional (tabelas) • modelos hierárquico e XML (árvore) • modelo orientado a objetos (classes - objetos complexos) MODELO FÍSICO Leva em consideração limites impostos pelo SGBD e pelos requisitos não funcionais dos programas que acessam os dados. Características: • Elaborado a partir do modelo lógico • Pode variar segundo o SGBD • Pode ter tabelas físicas (log , lider , etc.) • Pode ter colunas físicas (replicação) ABORDAGEM RELACIONAL • Composição de um banco de dados relacional. Um banco de dados relacional é composto por tabelas ou relações. A • terminologia tabela é mais comum nos produtos comerciais e na prática, enquanto a terminologia relação foi utilizada na literatura inicial sobre a abordagem relacional. Tabelas • Uma tabela é um conjunto não ordenado de linhas (tuplas, na linguagem acadêmica). Cada linha é composta por uma série de campos (valor de atributo, na linguagem acadêmica). Chaves • Chaves são um conceito básico que permitem identificar linhas e estabelecer relações entre linhas e tabelas de um banco de dados relacional. Em um banco de dados relacional, há pelo menos três tipos de chaves a serem consideradas: chaves primárias, chaves estrangeiras e chaves alternativas. Chave Primária As chaves primárias são uma coluna (ou um conjunto delas) dentro de uma tabela que distinguem uma linha das demais. As chaves primárias podem ser compostas por mais de uma coluna, entretanto, devem sempre respeitar o princípio da minimalidade. Uma chave é mínima quando todas as suas colunas forem efetivamente necessárias para garantir o requisito da unicidade de valores da chave. Chave Estrangeira Uma chave estrangeira é uma coluna ou uma combinação de colunas cujos valores aparecem necessariamente na chave primária de uma tabela. A chave estrangeira é o mecanismo que permite a implementação de relacionamentos em bancos de dados relacionais. A existência de chaves estrangeiras impõe restrições que devem ser garantidas ao executar diversas operações de alterações no banco de dados. Chave Alternativa Em alguns casos, mais de uma coluna (ou combinações de colunas) podem servir para distinguir uma linha das demais. Uma coluna, ou combinação, é escolhida como chave primária e as demais candidatas são tratadas como chaves alternativas. Domínios e valores vazios (null e not null) Quando uma tabela do banco de dados é definida, para cada coluna deve ser especificado um conjunto de valores que seus campos podem assumir. Este conjunto de valores é denominado “domínio da coluna” ou “domínio do campo”. Além disso, devese especificar se os campos da coluna podem estar vazios, o que indica que o campo não recebeu nenhum valor de seu domínio. As colunas nas quais não são admitidos valores vazios são chamadas “colunas obrigatórias”. Aquelas que admitem valores vazios são as denominadas “colunas opcionais”. Os SGBDs relacionais geralmente exigem que a coluna da chave primária não seja vazia (coluna brigatória). A mesma exigência não é feita para as demais chaves. Entidade Fraca Entidade que só existe quando relacionada a outra entidade, sendo seu identificador composto por atributos de outra entidade. 55 56