Thiago Hernandes de Souza



Documentos relacionados
Marco Polo Monteiro Viana. Sistemas Comerciais. Conceitos, modelagem e projeto

Leo Akio Yokoyama. Matemática e Síndrome de Down

Banco de Dados. Aula 1 - Prof. Bruno Moreno 16/08/2011

QUESTÕES DE MATEMÁTICA

Gestão de Tecnologia da Informação

Projeto e Implementação

PLANO DE ENSINO. PRÉ-REQUISITO: Modelagem e Programação Orientada a Objetos. PROFESSOR RESPONSÁVEL : Josino Rodrigues Neto

Persistência e Banco de Dados em Jogos Digitais

Banco de Dados. Maurício Edgar Stivanello

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Noções de. Microsoft SQL Server. Microsoft SQL Server

Disciplina: Unidade III: Prof.: Período:

Projeto de Banco de Dados

MC536 Bancos de Dados: Teoria e Prática

Faculdade Lourenço Filho - ENADE

PROGRAMA. Objectivos Gerais :

SISTEMA GERENCIADOR DE BANCO DE DADOS

NORMA TÉCNICA PARA IMPLANTAÇÃO DE NOVOS SISTEMAS OU APLICAÇÕES NO BANCO DE DADOS CORPORATIVO

QUESTINAMENTOS AO EDITAL DE CONCORRÊNCIA 01/2013

Plano de Trabalho Docente Ensino Técnico

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Formação em Banco de Dados. Subtítulo

SQL APOSTILA INTRODUÇÃO A LINGUAGEM SQL

SISTEMAS DE INFORMAÇÃO GERENCIAIS

Formação em Banco de Dados

Índice. Introdução às bases de dados. Parte 1 ÍNDICE DE FIGURAS E QUADROS 11 CONVENÇÕES USADAS NESTE MANUAL 15 PREFÁCIO 17

Disciplina: Unidade V: Prof.: Período:

Ensino Técnico Integrado ao Médio FORMAÇÃO PROFISSIONAL. Plano de Trabalho Docente 2014

18/03/2012. Formação.

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

Modelo Relacional. 2. Modelo Relacional (Lógico)

Fernando Albuquerque - fernando@cic.unb.br. Bancos de Dados. Fernando Albuquerque fernando@cic.unb.br

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

Cursos Guia DBA Pacote Curso SQL Server 2014 e o passo a passo para otimização SQL Server 2016

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Banco de Dados II Apresentação da Disciplina

TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES

Banco de Dados. Um momento crucial na organização dos dados é a forma com que cadastramos estes dados, a estrutura de armazenamento que criamos.

INTRODUÇÃO. Enfoque abstrato. Enfoque Intermediário

Banco de Dados Oracle 10g: Introdução à Linguagem SQL

GBC043 Sistemas de Banco de Dados. Introdução. Ilmério Reis da Silva UFU/FACOM

SQL BANCO DE DADOS. Linguagem de consulta SQL. Linguagem de consulta SQL. Linguagem de Consulta Estruturada

MODELAGEM DE DADOS. Unidade II Arquiteturas do SGBD

IT SERVICES PORTFOLIO. SPEKTRUM IT Services Portfolio 1

LINGUAGEM DE BANCO DE DADOS

Módulo 4: Gerenciamento de Dados

Tecnologias e Linguagens para Banco de Dados I

BANCO DE DADOS. Fixação dos conteúdos Integridade Referencial Normalização Exercícios

SISTEMA DE GESTÃO PARA CURTUMES

1- Identifique para cada questão abaixo, se o enunciado se refere a View, Stored Procedures, Trigger ou Function. Apenas um por questão.

INTERNET HOST CONNECTOR

Exercícios de Lógica Exercícios de Fixação 08

Evolução. Tópicos. Bancos de Dados - Introdução. Melissa Lemos. Evolução dos Sistemas de Informação Esquemas Modelos. Características de SGBDs

Banco de Dados. Prof. Antonio

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

Como funcionam os comandos de SQL no Logic Basic Por Alan Oliveira

Curso de Aprendizado Industrial Desenvolvedor WEB. Disciplina: Banco de Dados Professora: Cheli Mendes Costa Modelo de Dados

Treinamento. DBA Oracle 11g. Duração: 120 horas

Channel. Visão Geral e Navegação. Tutorial. Atualizado com a versão 3.9

Prof.: Clayton Maciel Costa

MC536 Bancos de Dados: Teoria e Prática

Oficina. Praça das Três Caixas d Água Porto Velho - RO

ADMINISTRAÇÃO DOS RECURSOS DE DADOS

Introdução ao SQL Avançado

UNIVERSIDADE FEDERAL FLUMINENSE PÓLO UNIVERSITÁRIO DE RIO DAS OSTRAS FACULDADE FEDERAL DE RIO DAS OSTRAS CURSO DE CIÊNCIA DA COMPUTAÇÃO

Gerenciamento de Dados e Gestão do Conhecimento

Roteiro. Conceitos e Arquitetura de Sistemas de Banco de Dados. Conceitos e Arquiteturas de Sistemas de Banco de Dados. BCC321 - Banco de Dados I

Bancos de Dados. Conceitos F undamentais em S is temas de B ancos de Dados e s uas Aplicações

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

Principais Comandos SQL Usados no MySql

Comandos de Manipulação

4- PROJETO DE BANCO DE DADOS

Disciplina de Banco de Dados Parte V

Plano de Trabalho Docente Ensino Técnico

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

ADMINISTRAÇÃO DOS RECURSOS DE DADOS

Estatística Básica via MySQL para Pesquisas On-Line

BANCO DE DADOS EVER SANTORO

Plano de Trabalho Docente Ensino Técnico

FACULDADE INTEGRADAS DE PARANAÍBA ADMINISTRAÇÃO DE EMPRESAS. Bancos de Dados Conceitos Fundamentais

FERRAMENTA WEB PARA MODELAGEM LÓGICA EM PROJETOS DE BANCOS DE DADOS RELACIONAIS

Disciplina: Tecnologias de Banco de Dados para SI s

Ensino Técnico Integrado ao Médio FORMAÇÃO PROFISSIONAL. Plano de Trabalho Docente 2014

BASES DE DADOS I LTSI/2. Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011

GESTÃO DAS INFORMAÇÕES DAS ORGANIZAÇÕES MÓDULO 11

SQL. Curso Prático. Celso Henrique Poderoso de Oliveira. Novatec

O que são Bancos de Dados?

Conceitos básicos. Aplicações de banco de dados. Conceitos básicos (cont.) Dado: Um fato, alguma coisa sobre a qual uma inferência é baseada.

GBD PROF. ANDREZA S. AREÃO

Corporativo. Transformar dados em informações claras e objetivas que. Star Soft.

BANCO DE DADOS 1 AULA 1. estrutura do curso e conceitos fundamentais. Professor Luciano Roberto Rocha. contato@lrocha.

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

14/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

Banco de Dados I. Apresentação (mini-currículo) Conceitos. Disciplina Banco de Dados. Cont... Cont... Edson Thizon

Transcrição:

Thiago Hernandes de Souza

SQL Avançado e Teoria Relacional Copyright Editora Ciência Moderna Ltda., 2013 Todos os direitos para a língua portuguesa reservados pela EDITORA CIÊNCIA MODERNA LTDA. De acordo com a Lei 9.610, de 19/2/1998, nenhuma parte deste livro poderá ser reproduzida, transmitida e gravada, por qualquer meio eletrônico, mecânico, por fotocópia e outros, sem a prévia autorização, por escrito, da Editora. Editor: Paulo André P. Marques Produção Editorial: Aline Vieira Marques Assistente Editorial: Lorena Fernandes Capa: Carlos Arthur Candal Diagramação: Tatiana Neves Copidesque: Eveline Vieira Machado Várias Marcas Registradas aparecem no decorrer deste livro. Mais do que simplesmente listar esses nomes e informar quem possui seus direitos de exploração, ou ainda imprimir os logotipos das mesmas, o editor declara estar utilizando tais nomes apenas para fins editoriais, em benefício exclusivo do dono da Marca Registrada, sem intenção de infringir as regras de sua utilização. Qualquer semelhança em nomes próprios e acontecimentos será mera coincidência. FICHA CATALOGRÁFICA SOUZA, Thiago Hernandes de. SQL Avançado e Teoria Relacional Rio de Janeiro: Editora Ciência Moderna Ltda., 2013. 1. Programação de Computador Programas e Dados 2. Ciência da Computação I Título ISBN: 978-85-399-0428-0 CDD 005 004 Editora Ciência Moderna Ltda. R. Alice Figueiredo, 46 Riachuelo Rio de Janeiro, RJ Brasil CEP: 20.950-150 Tel: (21) 2201-6662/ Fax: (21) 2201-6896 E-MAIL: LCM@LCM.COM.BR WWW.LCM.COM.BR 05/13

Introdução Nos dias atuais, uma das preocupações de programadores é o aprendizado de novas tendências tecnológicas para área de TI (Tecnologia da Informação). Muitos desses se deparam constantemente com reciclagens, especializações e foco em linguagens que possam trabalhar fornecendo informações para o banco de dados corporativo em que desenvolve incumbências. Essa é uma realidade! Não obstante, uma parte da TI que tem sido pouco explorada e enfocada para um resultado mais profissional e que flexibilize a implementação a qualquer momento de uma aplicação é o banco de dados. Um banco de dados, juntamente com suas teorias de otimização e normalização, na verdade estão em segundo plano, tendo como objetivo principal o desenvolvimento de trabalhos demandados e a grande ansiedade em colocá-los para funcionar. Com isso, bancos de dados mais complexos e que requeiram um maior fluxo de dados e constantes processamentos de procedimentos armazenados e instruções para atualização ou correção acabam se tornando: instáveis, lentos e duvidosos para certas empresas. Além de propícios aos famosos travamentos e reinicialização do SGBD. Mesmo assim, pelo desconhecimento e até mesmo pela pouca ênfase na Teoria Relacional, servidores estão cada vez mais sendo escolhidos pela escalabilidade vertical. Esta, que trabalha com máquinas cada vez mais potentes e que, mesmo assim, ao não conseguir atender a demandas, são trocados e configurados constantemente para manutenção operacional com o objetivo de rapidez e confiabilidade parcial. A Teoria Relacional, aliada à escalabilidade horizontal, tende a reduzir gastos com grandes e potentes servidores, devido à característica de distribuir processamentos, demandas e demais tarefas pertinentes a um sistema de computador.

IV SQL Avançado e Teoria Relacional Contudo, não basta! Se os mandamentos de Codd e as Formas Normais(FN) não forem estabelecidos corretamente e pré-dispostos a receber adaptações e implementações futuras, o grande responsável em manter, armazenar e disponibilizar os dados para estatísticas e consultas empresariais, o banco de dados, não vai passar de um sofrimento e dor de cabeça para uma corporação, tendo que conviver com momentos de pico e, consequentemente, a famosa lentidão de sistemas.

Sumário V Sumário Capítulo 1 SQL (Structured Query Language) e Teoria Relacional... 1 Capítulo 2 Valor e Variável... 3 Capítulo 3 Características do Emprego do Banco de Dados... 5 Capítulo 4 Linguagens do Banco de Dados... 7 Capítulo 5 Interfaces do SGBD... 9 Capítulo 6 Ambiente dos Sistemas de Banco de Dados... 11 6.1 Módulos Componentes do SGBD... 11 Capítulo 7 Utilitários do Sistema do Banco de Dados... 13 Capítulo 8 Arquiteturas para SGBD... 15

VI SQL Avançado e Teoria Relacional Capítulo 9 Projeto de Banco de Dados e afim com o modelo relacional... 17 Capítulo 10 Modelo Entidade-Relacionamento... 19 10.1 Generalização... 19 10.2 Especialização... 20 10.3 Relacionamentos... 20 10.4 Condicionalidade... 20 10.5 Expressão do Relacionamento... 21 Capítulo 11 Relacionamentos Especiais... 23 11.1 Relacionamentos entre Múltiplas Entidades... 23 11.2 Modelo Lógico Relacional... 23 11.2.1 Principais Vantagens da Abordagem Relacional... 24 Capítulo 12 Regras de Codd... 25 12.1 Chaves e Índices... 26 12.2 Regras de Integridade no Modelo Relacional... 27 Capítulo 13 Derivação do Modelo E-R para o Modelo Relacional... 29 13.1 Conversão do Modelo Conceitual no Modelo Lógico Relacional... 29 13.2 Generalizações... 31 13.3 Normalização... 31 13.4 Sentido de Cima para Baixo (TOP-DOWN)... 31 13.5 Sentido de Baixo para Cima (BOTTON-UP)... 31

Sumário VII Capítulo 14 Anomalias... 33 Capítulo15 Primeira Forma Normal (1FN)... 35 15.1 Variação Temporal e a Necessidade de Histórico... 35 15.2 Dependência Funcional... 36 15.3 Dependência Funcional Total (Completa) e Parcial... 36 15.4 Dependência Funcional Transitiva... 37 Capítulo 16 Segunda Forma Normal (2FN)... 39 Capítulo 17 Terceira Forma Normal (3FN)... 41 Capítulo 18 Cláusulas SQL... 43 18.1 Operadores Lógicos... 43 18.2 Operadores Relacionais... 44 18.3 Funções de Agregação... 44 18.4 Sistemas de Banco de Dados que usam SQL... 44 Capítulo 19 Praticando com SQL... 47 19.1 Criação das Entidades/Tabelas do Banco de Dados... 51 19.2 Realizando INSERTs nas Tabelas... 55 19.3 Trabalhando com SELECT... 66 19.4 Trabalhando com JOINs... 67 19.5 SUBSELECTs... 72

VIII SQL Avançado e Teoria Relacional 19.6 Funções de Agregação... 74 19.7 Operador Relacional LIKE... 77 19.8 >, <, >=, <= e BETWEEN... 79 19.9 GROUP BY, ORDER BY e HAVING... 80 19.10 WHERE... 85 19.11 Processamento Condicional com CASE... 86 19.12 Encapsulamento... 87 Capítulo 20 Aprofundando no SQL... 89 Capítulo 21 Otimização... 97 21.1 Erros Comuns na Definição das Entidades... 98 21.2 Chaves Primárias Compostas... 99 21.3 UPDATE e DELETE... 100 21.4 Integridade Relacional Referencial... 101 21.5 Campos Calculados... 102 Capítulo 22 Permissões para os Usuários... 107 22.1 Permissão para Todos os Objetos do Banco de Dados academicosqlavancado.. 107 22.2 Excluindo as Permissões para Todos os Objetos do Banco de Dados academicosqlavancado... 108 22.3 Permissão por Tabelas... 108 22.4 Excluindo a Permissão por Tabelas... 109 Capítulo 23 Praticando um Pouco Mais... 111 23.1 Exercitando as Instruções SQL com o Banco estoqueentradassaidas... 118

Sumário IX 23.2 Considerações Finais da Performance com o SQL... 121 23.2.1 Aperfeiçoando a definição de QUERIES (QUERY)... 123 23.2.2 Dicas para a normalização das entidades e a integridade dos dados... 124 Capítulo 24 Prática Final Avançada - Banco de Dados Normalizado para uma Empresa de Ônibus...127 24.1 Diagrama E-R (Entidade-Relacionamento) Conceitual... 127 24.2 Criando o Banco de Dados... 129 24.2.1 Tabelas... 133 24.2.2 Indexes... 142 24.2.3 Triggers... 144 24.2.4 Functions... 146 24.2.5 Views... 147 24.2.6 Procedures... 149

Capítulo 1 SQL (Structured Query Language) e Teoria Relacional A teoria relacional é geralmente incrompreendida por diversos programadores de banco de dados ou DBAs (Database Administrators). Com isso, a grande maioria dos profissionais da área de banco de dados não sabe o quanto é importante a compreensão desse tópico. Na verdade, o que muitos profissionais de TI (Tecnologia da Informação) não sabem é que o modelo relacional é o fundamento para a criação de qualquer banco de dados bem estruturado e de alta disponibilidade. Ou seja, é o alicerce para o bom uso da linguagem SQL em qualquer cenário ou metamodelo de dados. Toda parte relacional envolve consistentemente os registros, a diferença entre a relação de valores e a relação de variáveis, a importância de nomes de atributos e as regras cruciais para a integridade de constraints. Constraint é um fator elementar que tem como principal objetivo referenciar as entidades.