• Nenhum resultado encontrado

Resumo - Banco de Dados

N/A
N/A
Protected

Academic year: 2021

Share "Resumo - Banco de Dados"

Copied!
8
0
0

Texto

(1)

ESAB – Pós-graduação em Engenharia de Sistemas Módulo: Banco de Dados

RESUMO UNIDADE 1: Conceitos básicos

Banco de Dados → conjunto de registros manipuláveis de mesma natureza, inseridas num mesmo local obedecendo a um padrão de armazenamento.

Um sistema de banco de dados é um sistema de manutenção de registros com a finalidade de armazenar informações e permitir que os usuários busquem e atualizem essas informações. Podem ser mono ou multiusuários.

Elementos básicos:

• Dados: podem ser integrados (unificação de vários arquivos para eliminar redundância) ou compartilhados (diferentes usuários acessam os mesmos dados, ao mesmo tempo ou não); • Hardware: discos e processador;

• Software: SGBD, responsável pelo gerenciamento da base de dados (utilitários, ferramentas de desenvolvimento, geradores de relatórios, gerenciador de transações, etc);

• Usuários: DBA, DA (administram a base para performance), programadores de aplicação e usuários finais.

UNIDADE 2: Vantagens de um SGBD

Sistema de Banco de Dados = Ferramentas/Aplicações + SGBD + Banco de Dados Propriedades básicas de um SGBD:

• Consistência ou Compartilhamento de Dados: dados armazenados num único local e compartilhados entre sistemas são mais confiáveis;

• Integridade: assegurar que os dados estão sempre corretos, com as correspondências adequadas entre as tabelas e chaves;

• Segurança ou Restrição de Acesso: níveis de acesso aos usuários para campos/tabelas (somente leitura, leitura e gravação ou sem acesso);

• Restauração ou Tolerância a Falhas: backups e recursos para recuperação de dados em caso de falhas;

• Não Redundância ou Controle de Redundância: as atualizações são sincronizadas; • Padronização dos Dados: permite maior controle e robustez do banco.

Desvantagens:

• maior investimento inicial (hardware e software);

• generalidade que um SGBD fornece na definição e processamento de dados;

• mais exigências quanto a controle de segurança, de concorrência, recuperação e integração de funções.

UNIDADE 3: Aspectos de um SGBD quanto à arquitetura Aspectos relevantes num projeto de sistema de banco de dados:

• Projetos Lógico e físico devem prever a escalabilidade;

• generalidade e alto grau de abstração dos dados (permite a utilização de diferentes SGBDs através de linguagens de consulta padronizadas);

(2)

• interface compatível com múltiplas plataformas (Unix, Windows, etc);

• independência de interface em relação aos SGBDs (Oracle, SYSBASE, XBASE, etc). Arquitetura:

• Centralizada: processamento no servidor, dados enviados ao terminal (thin client); • Cliente-Servidor: divide o ambiente de computação, possui servidores especializados

(dados, impressão), as máquinas clientes possuem interfaces e algum processamento. UNIDADE 4: Arquiteturas de um SGBD - detalhamento

• Centralizada: mainframes, alto poder de processamento no servidor, com alto custo;

• Cliente-Servidor: cliente (front-end) executa as tarefas do aplicativo, o servidor (back-end) executa as consultas no SGBD e retorna os resultados ao cliente;

• Sistemas em Computadores Pessoais: standalone, simplicidade, aplicações de baixa e média complexidade;

• Distribuída (N camadas): diversos servidores (hosts), as consultas são feitas a qualquer servidor indistintamente, o sistema obtém a informação de maneira transparente, usado comumente em bases de dados corporativas, complexidade de gerenciamento;

• Paralela: técnicas de gerência de dados + processamento paralelo = maior desempenho e confiabilidade, com computadores multiprocessados, paralelismo de consultas e transações com menor tempo de resposta, porém com alto custo e complexidade de gerenciamento. UNIDADE 5: Níveis de abstração dos dados na arquitetura do SGBD

• Nível Físico: é o nível mais baixo, o de armazenamento físico dos dados no banco;

• Nível Lógico (conceitual): descreve os dados armazenados e as relações entre eles, sem a preocupação de mostrar as complexidades da estrutura física do banco;

• Nível de Visões (externo): descreve uma 'visão' limitada do banco de dados, apenas uma parte do banco, para simplificar as interações com ele.

O primeiro nível é de implementação(voltado à máquina), os outros 2 são de modelos (voltados ao usuário).

UNIDADE 6: Características dos usuários que trabalham com SGBD

• Administrador de Dados (DA): se preocupa com a organização dos dados, não com seu armazenamento. Ele deve:

• Gerenciar o dado com recurso da organização;

• Planejar, desenvolver e divulgar as bases de dados da empresa;

• permitir a descentralização dos processos (mantendo os dados centralizados); • permitir acesso rápido e fácil às informações a partir dos dados.

• Administrador de Banco de Dados (DBA): gerencia os recursos (Banco de Dados e SGBD), fornecendo autorização de acesso, coordenação e monitoração do seu uso. Atribuições:

• Definição do esquema do banco de dados;

• Definição da estrutura de dados e métodos de acesso; • Modificações no esquema ou na organização física; • controle das autorizações de acesso ao sistema; • especificação das regras de integridade.

• Projetista de Banco de Dados (DB Designer): identifica os dados que devem ser

armazenados no Banco de Dados, montando a estrutura e representação e armazenamento dos dados;

• Usuários finais: 4 categorias básicas:

(3)

cada acesso, usando linguagens de consulta;

• Novatos ou Paramétricos: utilizam visões do Banco de Dados, com consultas preestabelecidas;

• Sofisticados: consultas complexas;

• Especialistas: escrevem aplicações especializadas;

• Analistas de sistemas e programadores de aplicações: determinam os requisitos de usuário e desenvolvem aplicações que atendam a estes requisitos;

• Profissionais de apoio: projetistas, operadores de manutenção. UNIDADE 7: Modelos Físico e Lógico de um Banco de Dados

• Físico: descrevem os dados no nível mais baixo, os mais conhecidos são Modelo Unificador (Unifying model) e Estrutura de Memória (frame memory). São pouco usados;

• Lógicos baseados em Registros: descrevem os dados no nível conceitual e de visões. O banco é estruturado em registros de tamanho fixo (com número fixo de campos, que possuem tamanho fixo). Com este conceito, existem 3 modelos de banco de dados:

• Hierárquico: estrutura de árvore invertida com acesso unidirecional, de pai para filho a partir da raiz (p. ex. IMS – Information Management System da IBM, Adabas e System2000). Para associar um registro a vários outros, recorre-se à replicação; • Rede: várias listas, similar a um grafo direcionado (p. ex. IDMS e Total). Não existe

restrição hierárquica;

• Relacional: elemento básico é a entidade (conjunto), visa manter os dados de forma não redundante, executar processamento integrado, lidar com relações múltiplas e fornecer certa independência entre dados.

UNIDADE 8: Modelos Lógicos de Banco de Dados Baseados em objetos

• Entidade-Relacionamento: percepção do mundo real em coleção de entidades e seus relacionamentos. A estrutura lógica de um banco é expressa por um Diagrama Entidade-Relacionamento:

• Retângulos → Entidades; • Elipse → atributos;

• Losangos → relacionamentos entre conjuntos de entidades;

O MER é conceitual, dá a ideia geral de como será o banco (e pode, por exemplo, ter um relacionamento N para N).

O DER representa graficamente o banco e as tabelas (e não poderia ter o relacionamento N para N acima, porque a normalização imporia a criação de uma terceira tabela). • Orientado a Objeto: é baseado num conjunto de objetos, possuindo trechos de código que

operam nele mesmo (métodos). Seu esquema é representado com UML; • Binário;

• Semântico de Dados: • Infológico;

• Funcional de dados;

UNIDADE 9: Entidade, atributo e tupla

• Entidade: base do banco de dados, tabela, é a estrutura na qual se elabora o 'banco' (quais informações devem ser guardadas, forma, etc);

• atributo: conjunto de características de uma entidade, um campo de um registro (registro é a linha e campo é a coluna). Em geral, campos não devem usar caracteres especiais, acentos, cedilhas, deve começar com letra maiúscula e não com número e evitar palavras compostas separadas por espaços;

(4)

entidade. Tipos de dados: • Alfanuméricos; • Numéricos; • Booleanos ou binários; • Datas;

• Memos (alfanuméricos sem limite);

• Autoincrementáveis (numéricos incrementados automaticamente). UNIDADE 10: Conceito de chave e tipos de chaves

• chave primária: conjunto de um ou mais atributos que identifica de forma única um registro. Tipos de chave primária:

• Simples: apenas um atributo; • Composta: mais de um atributo.

Chave única: quando um campo não deve ser repetido e não é chave primária.

Chave estrangeira: quando o valor de um atributo é validado a partir do valor de um atributo de outra tabela (relação de dependência entre as tabelas). Em uma tabela o atributo é a chave primária, na outra ele é a 'chave estrangeira'.

UNIDADE 11: Conceito básicos de relacionamento e seus tipos

Relacionamento: associação entre campos comuns em 2 tabelas, fazendo a correspondência entre registros de diferentes tabelas. Na maior parte dos casos, esses campos serão a chave primária em uma tabela e estrangeira na outra.

Grau de Relacionamento ou Cardinalidade: número de ocorrências de uma entidade com a outra, podendo ser:

• Um-para-um → cada registro na tabela X pode ter somente um registro na tabela Y e vice-versa (os campos relacionados são chaves primárias nas duas tabelas);

• Um-para-muitos → um registro de uma tabela X (chave primária) pode ter vários registros na tabela Y (chave estrangeira). Como exemplo, X = Cliente e Y = Pedido;

• Muitos-para-muitos → um registro numa tabela X pode ter vários registros na tabela Y e vice-versa, mas isso exige uma terceira tabela (tabela de associação) cuja chave primária é composta por 2 campos (chaves estrangeiras de X e Y).

UNIDADE 12: Relacionamentos especiais com Múltiplas Entidades

Relacionamentos podem envolver mais de 2 entidades, embora seja incomum relacionamento múltiplo com mais de quatro entidades (muitas vezes pode ser desdobrado em mais de um relacionamento, reduzindo a complexidade).

UNIDADE 13: Integridade

Integridade é garantir a consistência de determinados dados internos do banco de dados, que podem gerar problemas para a organização. As formas mais comuns são:

• Integridade de Domínio: valores ideais e necessários a um atributo (não pode ser negativo, não pode ser zero, etc);

• Integridade de Entidade: valida os valores permitidos a partir de valores já inseridos previamente (não permitir duas pessoas com o mesmo RG);

(5)

provenientes de outra entidade (por exemplo, inserir um registro numa tabela-filho só é possível se existir um registro coincidente na tabela-pai; e um registro pai só poderá ser excluído se não possuir nenhum registro filho).

UNIDADE 14: Normalização e suas técnicas

Processo matemático formal, fundamentado na teoria dos conjuntos, que substitui um conjunto de entidades e relacionamentos por outro, eliminando a redundância de dados e objetivando a

independência dos dados e facilitando a manipulação e manutenção do banco de dados.

Pode ser Top-Down (cria-se o modelo de dados e aplica-se a normalização) ou Bottom-Up (aplica-se a normalização como ferramenta de projeto do modelo de dados).

Dependências:

• Dependência Funcional Total → um atributo ou conjunto de atributos depende de forma total da chave primária concatenada se, a cada valor da chave está associado um valor para este atributo;

• Dependência Funcional Parcial → o atributo só depende de parte da chave primária;

• Dependência Funcional Transitiva → quando um atributo ou conjunto de atributos depende de OUTRO atributo que não pertence à chave primária, mas possui uma dependência funcional desta.

Normalização:

• Primeira Forma Normal (1FN): cada ocorrência da chave primária deve corresponder a uma informação de cada atributo (não deve conter grupos repetitivos). Cada relação não

normalizada deve ser decomposta em tantas entidades quantos forem os grupos repetitivos; • Segunda Forma Normal (2FN): uma relação se encontra em 2FN quando esta em 1FN e

todos os atributos não-chave são dependentes funcionais desta;

• Terceira Forma Normal (3FN): uma relação está em 3FN se estiver em 2FN e nenhum de seus atributos tiver dependência transitiva em relação a outro atributo (que não pertence à chave primária).

UNIDADE 15: Princípios básicos do armazenamento e manipulação de dados

• Linguagem de Definição de Dados (DDL): especifica um esquema de Banco de Dados, cujo resultado é um conjunto de tabelas armazenadas no dicionário de dados (que é um arquivo com metadados);

• Linguagem de Manipulação de Dados (DML): permite aos usuários fazer acesso aos dados ou manipulá-los conforme o modelo dedados. Podem ser procedurais (especificação do dado necessário e como obtê-lo) ou não-procedurais (especifica o dado necessário mas sem especificar como obtê-lo). O conjunto da DML que envolve busca de dados é a linguagem de consulta;

Componentes funcionais de um Banco de Dados:

• Gerenciador de arquivos: alocação de espaço e as estruturas de dados para representar as informações;

• Gerenciador do Banco de Dados: interface entre os dados de baixo nível e os programas aplicativos e de consulta submetidos ao sistema;

• Processador de consultas: traduz os comandos numa linguagem de consulta para instruções de baixo nível que o gerenciador do banco de dados pode utilizar;

• Pré-compilador da DML: converte comandos DML em chamadas de procedimento normal na linguagem hospedeira interagindo com o processador de consultas;

(6)

UNIDADE 16: Linguagem SQL

Histórico da SQL (inicialmente SEQUEL) desde a década de 70 até hoje, mostrando sua adoção sistemática para uso em SGBD.

Ela serve como:

• Linguagem interativa de consulta;

• Linguagem de programação para acesso a Banco de Dados; • Linguagem de Administração de Banco de Dados;

• Linguagem Cliente/Servidor;

• Linguagem para Banco de Dados Distribuído; Estrutura básica da SQL:

• DML → Select, Insert, Update e Delete;

• DCL (Data Control Language) → Grant e Revoke; • DDL → Create, Alter, Drop;

• Construção de Visões e operações de controle: Commit, Rollback, Show, List. UNIDADE 17: Sintaxe de comando SQL

CREATE DATABASE <nome_db>; OPEN DATABASE <nome_db>; CREATE TABLE <nome_tabela> ( nome_atributo1 <tipo> [NOT NULL], …

nome_atributoN <tipo> [NOT NULL], primary key (nome_atributo_chave) ); DROP TABLE <nome_tabela>; Exemplos, página 82-83.

UNIDADE 18: Sintaxe de comando SQL (continuação) SELECT * FROM table;

SELECT col1, col2 FROM table WHERE fieldX > 10; SELECT col1, col2 FROM table WHERE fieldX = 'value';

Fazendo operação aritmética sobre o resultados de uma coluna e colocando nomes bonitos no lugar dos nomes das colunas:

SELECT col1 “Nome Bonito Coluna 1”, col2 * 12 “Nome Bonito Coluna 2” FROM table WHERE fieldX > NNNN;

* DISTINCT → omite duplicidades

* NVL( col1, 0 ) → converte NULL em zero para a coluna col1. UNIDADE 19: Sintaxe de comando SQL (continuação)

continua com o SELECT:

(7)

Exemplos e demais cláusulas do comando SELECT nas páginas 91-95 UNIDADE 20: Sintaxe de comando SQL (continuação)

Funções agregadas e cláusula HAVING. Agrupamento com GROUP BY. Exemplos nas páginas 91-100.

* SQL avalia na ordem: WHERE (para estabelecer tuplas – não pode ter funções de grupo), GROUP BY (para fixar grupos) e HAVING (para selecionar grupos para exibição).

UNIDADE 21: Comandos SQL (continuação)

Equi-junção → relacionamento existente entre tabelas (é possível quando a definição da chave estrangeira é feita de forma adequada – referência à chave primária da tabela precedente). Subconsulta → um SELECT dentro de outro.

UNION → junta 2 linhas de consultas. Exemplos nas pp. 101-103

UNIDADE 22: Comandos SQL de manipulação de tabelas

INSERT INTO table ( COL1, COL2, COL3) VALUES ( “val1”, “val2”, “val3”); UPDATE table SET COL1 = COL1*10 WHERE COL1 < 10;

DELETE FROM table WHERE COL1 < 10; Transações (para permitir rollback):

begin transaction … ROLLBACK TRANSACTION … COMMIT end transaction; Exemplos de VIEW p. 109.

UNIDADE 23: Comandos SQL para relatórios pp.110-113

UNIDADE 24: Definição de privilégios

GRANT → permite adicionar privilégios (Select, Insert, Delete Update) a uma lista de usuários. A opção WITH GRANT OPTION passa adiante o privilégio (ou seja, os usuários que o recebem podem usar, por sua vez, o comando GRANT e passar privilégios a outros usuários).

REVOKE → revoga os privilégios Exemplos pp.115-117

UNIDADE 25: Definição de índices

(8)

CREATE INDEX → comando para criar índices

Índices são sub-tabelas dentro do SGBD e são gerenciadas por eles, logo não podem ser criados o tempo todo senão comprometem o desempenho do banco.

UNIDADE 26: Resumo dos comandos SQL e comandos específicos de outros SGBDs Tabela de comandos (pp.123-126)

UNIDADE 27: Técnicas de otimização de consultas SQL Boas práticas:

• Normalize as tabelas;

• Os primeiros campos das tabelas devem ser os requeridos;

• Primeiro defina os campos de tamanho fixo e depois os de tamanho variável;

• Se um campo de texto ('Descrição', por exemplo) for grande e pouco utilizado, é melhor criar uma tabela que contenha só este campo e a chave primária da tabela original;

• índices são úteis quando se realizam consultas simultâneas sobre várias tabelas (o processo fica otimizado se forem criados índices para os campos que ligam as tabelas);

• ao utilizar SELECT para mais de 1 tabela, deixar explícito o nome da tabela e do campo economiza tempo do gerenciador para traduzir a expressão;

• a ordem das tabelas na cláusula FROM é importante. UNIDADE 28: Gatilhos (Triggers)

O trigger define um conjunto de ações a serem executadas quando ocorre um evento no Banco de Dados em uma determinada tabela. O evento pode ser uma operação de exclusão, inserção ou atualização.

O comando é o CREATE TRIGGER. Ele pode ser chamado antes ou depois (BEFORE/AFTER) o evento, pode ser aplicado a cada linha alterada por uma operação (FOR EACH ROW) ou para uma operação inteira (FOR EACH STATEMENT).

Se vários gatilhos do mesmo tipo estão definidos para o mesmo evento, eles são disparados em ordem alfabética de seus nomes.

UNIDADE 29: Segurança

Fala da importância de proteger os dados e depois mostra algumas formas que são usadas pra tentar invadir banco de dados (quebra de senhas, falta de atualização, etc).

Depois cita boas práticas (restringir o acesso a certas áreas, uso de certos protocolos, permissões de arquivos e diretórios, etc).

UNIDADE 30: SGBDs usados no mundo corporativo Basicamente enumera alguns e conta seu histórico.

MySQL → interface SQL, fácil integração com PHP, software livre;

PostgreSQL → Sistema Gerenciador de Banco de Dados Objeto Relacional de código aberto; SQL Server;

Oracle;

DB2 → produzido pela IBM, inicialmente para mainframes, posteriormente a IBM trouxe para outras plataformas (Unix, Widows, Linux).

Referências

Documentos relacionados

Field Studies on the Ecology of the Sand Fly Lutzomyia longipalpis (Diptera: Psychod- idae) at an Endemic Focus of American Visceral Leishmaniasis in Colombia. Bionomía de los

Esse trabalho, apresentado no contexto do Curso de Especialização de Educação na Cultura Digital da Universidade Federal de Santa Catarina, trata do processo de

Este presente artigo é o resultado de um estudo de caso que buscou apresentar o surgimento da atividade turística dentro da favela de Paraisópolis, uma

Entretanto por existirem diversas áreas de Brejos de Altitude distribuídas na região Nordeste torna-se necessário mais estudos sobre a diversidade de liquens, mas não somente para

A não uniformização quanto ao método de referência pode promover diferenças entre as curvas de calibração geradas por laboratórios de dosimetria citogenética, que podem

seria usada para o parafuso M6, foram utilizadas as equações 14 e 15, referentes aos parafusos de 8 mm de diâmetro e folga entre parafuso e furo de 0,5 mm, que definem,

No entanto, os resultados apresentados pelo --linalol não foram semelhantes, em parte, aos do linalol racêmico, uma vez que este apresenta um efeito vasorelaxante em anéis de

Resumo: O presente trabalho corresponde a um estudo empírico descritivo e exploratório que aborda comportamentos e falas de atores políticos que participaram do processo legislativo