A empresa brasileira de PostgreSQL

Tamanho: px
Começar a partir da página:

Download "A empresa brasileira de PostgreSQL"

Transcrição

1 Bad Smells (mal cheiros) em Bancos de Dados A empresa brasileira de PostgreSQL TDC2013, Porto Alegre,

2 Palestrante Fabrízio de Royes Mello Desenvolvedor PostgreSQL Líder do PostgreSQL Brasil Pós-Graduando Uniritter Timbira Consultor/Mentor/Coach A empresa brasileira de PostgreSQL Consultoria Desenvolvimento Suporte 24x7 Treinamento Timbira - A empresa brasileira de PostgreSQL 2 / 39

3 Sobre este material esta apresentação está disponível em: esta apresentação está sob licença Creative Commons Atribuição 3.0 Brasil: Embora este material tenha sido elaborado com toda precaução, os autores não assumem quaisquer responsabilidades por erros, omissões ou danos resultantes da utilização das informações aqui contidas. Se você encontrar qualquer erro, por favor reporte-o a [email protected]

4 Resumo 1 Prelúdio 2 Introdução 3 Bad Smells 4 Considerações Finais Timbira - A empresa brasileira de PostgreSQL 1 / 39

5 Como tudo começou na minha vida Basic CLIPPER (e um pouco de C) C e Pascal SQL - mudou minha vida ;-) Teoria Relacional Web (PHP, HTML, CSS, Javascript) Database Refactoring Bad Smells em Bancos de Dados Timbira - A empresa brasileira de PostgreSQL 2 / 39

6 Resumo 1 Prelúdio 2 Introdução 3 Bad Smells 4 Considerações Finais Timbira - A empresa brasileira de PostgreSQL 3 / 39

7 Bancos de Dados Tendem a se deteriorar ao longo do tempo. Alguns motivos: crescimento volume de dados/transações; aumento natural de usuários que o utilizam; dificuldades na evolução do schema; estratégias de manutenção. Timbira - A empresa brasileira de PostgreSQL 4 / 39

8 Refatoração em Bancos de Dados Deterioração + Mudanças em Requisitos = Necessidade de Refatoração. Timbira - A empresa brasileira de PostgreSQL 5 / 39

9 Refatoração em Bancos de Dados Deterioração + Mudanças em Requisitos = Necessidade de Refatoração. Mas não é tão simples assim: além de manter comportamento também é preciso manter informação (dados); acoplamento com diversas origens (apps, bds, integrações, 3rd,...) Timbira - A empresa brasileira de PostgreSQL 5 / 39

10 Resumo 1 Prelúdio 2 Introdução 3 Bad Smells 4 Considerações Finais Timbira - A empresa brasileira de PostgreSQL 6 / 39

11 Code Smell É uma categoria comum de problema no código fonte que indica a necessidade de refatoração. (Martin Fowler) Timbira - A empresa brasileira de PostgreSQL 7 / 39

12 Database Smell Similarmente aos Code Smells existem problemas comuns em bancos de dados que indicam uma potencial necessidade de refatoração. (Scott Ambler) Timbira - A empresa brasileira de PostgreSQL 8 / 39

13 Database Smell Multi-purpose column Se uma coluna for utilizada para vários fins, é provável que exista um código extra para garantir que a mesma seja usada corretamente e, muitas vezes, verificando valores de uma ou mais colunas. Timbira - A empresa brasileira de PostgreSQL 9 / 39

14 Multi-purpose column CREATE TABLE pessoa ( id SERIAL PRIMARY KEY, tipo CHAR(1) CHECK (tipo IN ( F, J )), nome VARCHAR(100) NOT NULL, data DATE ); Timbira - A empresa brasileira de PostgreSQL 10 / 39

15 Multi-purpose column CREATE TABLE pessoa ( id SERIAL PRIMARY KEY, tipo CHAR(1) CHECK (tipo IN ( F, J )), nome VARCHAR(100) NOT NULL, data DATE ); Se tipo = F então DATA = nascimento Se tipo = J então DATA = inicio atividades Timbira - A empresa brasileira de PostgreSQL 10 / 39

16 Multi-purpose column Sugestão(ões) Database Refactoring: Split Column Move Column Timbira - A empresa brasileira de PostgreSQL 11 / 39

17 Database Smell Multi-purpose table Quando uma tabela é utilizada para armazenar vários tipos de entidades provavelmente existe uma falha de projeto. Timbira - A empresa brasileira de PostgreSQL 12 / 39

18 Multi-purpose table CREATE TABLE pessoa ( id SERIAL PRIMARY KEY, tipo CHAR(1) CHECK (tipo IN ( F, J )), nome VARCHAR(100) NOT NULL, nome_fantasia VARCHAR(100), cnpj CHAR(14), cpf CHAR(11), rg CHAR(10), data DATE ); Timbira - A empresa brasileira de PostgreSQL 13 / 39

19 Multi-purpose table CREATE TABLE pessoa ( id SERIAL PRIMARY KEY, tipo CHAR(1) CHECK (tipo IN ( F, J )), nome VARCHAR(100) NOT NULL, nome_fantasia VARCHAR(100), cnpj CHAR(14), cpf CHAR(11), rg CHAR(10), data DATE ); Se tipo = F então NOME = nome, Se tipo = J então NOME = razão social Se tipo = F então CNPJ e NOME_FANTASIA = NULL Se tipo = J então CPF e RG = NULL Timbira - A empresa brasileira de PostgreSQL 13 / 39

20 Multi-purpose table Sugestão(ões) Database Refactoring: Split Column Move Column Split Table Timbira - A empresa brasileira de PostgreSQL 14 / 39

21 Database Smell Redundant data É um problema sério em bases de dados porque quando o dado é armazenado em vários locais, ocorre uma oportunidade de inconsistência. Timbira - A empresa brasileira de PostgreSQL 15 / 39

22 Redundant data CREATE TABLE sys.usuario ( id SERIAL PRIMARY KEY, nome VARCHAR(100) NOT NULL, endereco VARCHAR(100), numero INTEGER, complemento VARCHAR(40) ); CREATE TABLE rh.funcionario ( id SERIAL PRIMARY KEY, nome VARCHAR(100) NOT NULL, endereco VARCHAR(100), numero INTEGER, complemento VARCHAR(40) ); Timbira - A empresa brasileira de PostgreSQL 16 / 39

23 Redundant data Sugestão(ões) Database Refactoring: Merge Tables Move Data Drop Column Timbira - A empresa brasileira de PostgreSQL 17 / 39

24 Database Smell Tables with too many columns Quando uma tabela tem muitas colunas é indicativo de falta de coesão, pois está armazenando dados de várias entidades. Timbira - A empresa brasileira de PostgreSQL 18 / 39

25 Tables with too many columns CREATE TABLE pessoa ( id SERIAL PRIMARY KEY, nome VARCHAR(100) NOT NULL, end_entrega VARCHAR(200), end_cobranca VARCHAR(200), end_residenc VARCHAR(200), end_profiss VARCHAR(200), fone_celular VARCHAR(20), fone_casa VARCHAR(20), fone_fax VARCHAR(20), fone_contato VARCHAR(20) ); Timbira - A empresa brasileira de PostgreSQL 19 / 39

26 Tables with too many columns CREATE TABLE parametro ( parametro1 VARCHAR(100), parametro2 VARCHAR(100), parametro3 VARCHAR(100), parametro4 VARCHAR(100), parametro5 VARCHAR(100), parametro6 VARCHAR(100),... parametron VARCHAR(100) ); Timbira - A empresa brasileira de PostgreSQL 20 / 39

27 Tables with too many columns Sugestão(ões) Database Refactoring: Split Table Move Column Timbira - A empresa brasileira de PostgreSQL 21 / 39

28 Database Smell Tables with too many rows Tabelas muito grandes podem nos levar a problemas de performance. O custo (memória e tempo) para buscar ou alterar dados em uma tabela varia de acordo com o número de linhas. Timbira - A empresa brasileira de PostgreSQL 22 / 39

29 Tables with too many rows CREATE TABLE measurement ( city_id int not null, logdate date not null, peaktemp int, unitsales int ); CREATE TABLE measurement_y2006m02 ( ) INHERITS (measurement CREATE TABLE measurement_y2006m03 ( ) INHERITS (measurement... CREATE TABLE measurement_y2007m11 ( ) INHERITS (measurement CREATE TABLE measurement_y2007m12 ( ) INHERITS (measurement CREATE TABLE measurement_y2008m01 ( ) INHERITS (measurement Timbira - A empresa brasileira de PostgreSQL 23 / 39

30 Tables with too many rows Sugestão(ões) Database Refactoring: Split Table Move Rows Move Column Timbira - A empresa brasileira de PostgreSQL 24 / 39

31 Database Smell Smart columns Coluna onde em diferentes posições do dado representam conceitos diferentes. Timbira - A empresa brasileira de PostgreSQL 25 / 39

32 Smart columns CREATE TABLE processo ( numero CHAR(10) PRIMARY KEY,... ); CREATE TABLE debito ( processamento CHAR(15) PRIMARY KEY... ); Timbira - A empresa brasileira de PostgreSQL 26 / 39

33 Smart columns CREATE TABLE processo ( numero CHAR(10) PRIMARY KEY,... ); CREATE TABLE debito ( processamento CHAR(15) PRIMARY KEY... ); numero = 4 digitos ano + 6 digitos sequencial processamento = 4 digitos ano + 6 digitos sequencial + 2 digitos parcela + 2 digitos total parcelas + 1 digito verificador Timbira - A empresa brasileira de PostgreSQL 26 / 39

34 Smart columns Sugestão(ões) Database Refactoring: Split Column Timbira - A empresa brasileira de PostgreSQL 27 / 39

35 Database Smell Phantom foreign-key Quando uma coluna em uma tabela pode receber um valor que dependendo de outra coluna estabelece relacionamento de chave estrangeira com outra tabela. Timbira - A empresa brasileira de PostgreSQL 28 / 39

36 Phantom foreign-key CREATE TABLE tabela (... tipo INTEGER, codigo INTEGER,... ); Timbira - A empresa brasileira de PostgreSQL 29 / 39

37 Phantom foreign-key CREATE TABLE tabela (... tipo INTEGER, codigo INTEGER,... ); Se TIPO = 1 entao CODIGO é ref. TABELA1 Se TIPO = 2 entao CODIGO é ref. TABELA2 Se TIPO = 3 entao CODIGO é ref. TABELA3... Timbira - A empresa brasileira de PostgreSQL 29 / 39

38 Phantom foreign-key Sugestão(ões) Database Refactoring: Introduce new table Introduce table constraint Move Column Timbira - A empresa brasileira de PostgreSQL 30 / 39

39 Database Smell Wrong data type Tipos de dados possuem uma assinatura, que descreve as validações mínimas para seu uso. Timbira - A empresa brasileira de PostgreSQL 31 / 39

40 Wrong data type CREATE TABLE pessoa ( id SERIAL PRIMARY KEY, nome VARCHAR(100) NOT NULL, cnpj CHAR(14), cpf CHAR(11), rg CHAR(10) ); CREATE TABLE atributo_dinamico ( nome VARCHAR(100), tipo INTEGER, valor TEXT ); Timbira - A empresa brasileira de PostgreSQL 32 / 39

41 Wrong data type CREATE TABLE pessoa ( id SERIAL PRIMARY KEY, nome VARCHAR(100) NOT NULL, cnpj CHAR(14), cpf CHAR(11), rg CHAR(10) ); CREATE TABLE atributo_dinamico ( nome VARCHAR(100), tipo INTEGER, valor TEXT ); CNPJ, CPF e RG não são números? VALOR é um campo "flex" Timbira - A empresa brasileira de PostgreSQL 32 / 39

42 Wrong data type Sugestão(ões) Database Refactoring: Replace column Timbira - A empresa brasileira de PostgreSQL 33 / 39

43 Database Smell Smells detectados pela minha experiência (não estão na literatura): Phantom foreign-key Wrong data type Trigger Spaghetti Timbira - A empresa brasileira de PostgreSQL 34 / 39

44 Database Smell Fear of change Dentre os database smells citados, devemos ter atenção especial a este, pois pode ser considerado o pior de todos, pois: inibe a inovação, reduz a efetividade, produz ainda mais bagunça e ao longo do tempo a situação fica cada vez pior. "Lempre-se do valor Coragem do XP!!!!" Timbira - A empresa brasileira de PostgreSQL 35 / 39

45 Resumo 1 Prelúdio 2 Introdução 3 Bad Smells 4 Considerações Finais Timbira - A empresa brasileira de PostgreSQL 36 / 39

46 Considerações Finais Coragem para evoluir Taxonomia dos Database Smells Ferramenta para detecção Timbira - A empresa brasileira de PostgreSQL 37 / 39

47 Referências Refactoring Improving the Desing of Existing Code (Martin Fowler) Refactoring Databases: Evolutionary Database Design (Scott Ambler e Pramod Sadalage) http: //agiledata.org/essays/databaserefactoring.html databaserefactoringsmells.html Timbira - A empresa brasileira de PostgreSQL 38 / 39

48 Perguntas? Fabrízio de Royes Timbira - A empresa brasileira de PostgreSQL 39 / 39

A linguagem SQL

A linguagem SQL SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua primeira versão recebeu o nome de

Leia mais

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 16. Escola Politécnica da Universidade de São Paulo

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 16. Escola Politécnica da Universidade de São Paulo PCS3413 Engenharia de So-ware e Banco de Dados Aula 16 Escola Politécnica da Universidade de São Paulo 1 SQL - STRUCTURED QUERY LANGUAGE SQL - Structured Query Language Linguagem de acesso a Banco de Dados

Leia mais

SQL Básica DDL. Prof. Marcos A. Schreiner. 21 de outubro de Curso de Licenciatura em Computação

SQL Básica DDL. Prof. Marcos A. Schreiner. 21 de outubro de Curso de Licenciatura em Computação SQL Básica DDL Prof. Marcos A. Schreiner Curso de Licenciatura em Computação 21 de outubro de 2015 Prof. Marcos A. Schreiner (UFPR) 21 de outubro de 2015 1 / 28 1 Introdução 2 SQL DDL CREATE Criar Banco

Leia mais

Linguagem de Consulta Estruturada (SQL)

Linguagem de Consulta Estruturada (SQL) Linguagem de Consulta Estruturada (SQL) SQL SQL (Structured Query Language), ou Linguagem de Consulta Estruturada. Usada em Bancos de Dados Relacionais. É padronizada (SQL ANSI). ANSI (American National

Leia mais

Banco de dados. Conteúdo: DDL Prof. Patrícia Lucas

Banco de dados. Conteúdo: DDL Prof. Patrícia Lucas Banco de dados Conteúdo: DDL Prof. Patrícia Lucas O mysql MySQL Workbench é uma ferramenta de design de banco de dados visual que integra o desenvolvimento SQL, administração, design de banco de dados,

Leia mais

Prof. Dr. Joaquim Assunção Banco de Dados. SQL (parte 4) DDL Restrições

Prof. Dr. Joaquim Assunção Banco de Dados. SQL (parte 4) DDL Restrições Prof. Dr. Joaquim Assunção. 2017 Banco de Dados SQL (parte 4) DDL Restrições Restrições SQL são usadas para especificar regras para dados em uma tabela. CREATE TABLE nome_da_tabela ( coluna1 tipo_de_dado

Leia mais

SQL Básica. Andre Noel

SQL Básica. Andre Noel SQL Básica Andre Noel Introdução A SQL é um dos principais motivos de sucesso dos BDs relacionais comerciais Introdução A SQL é um dos principais motivos de sucesso dos BDs relacionais comerciais Se tornou

Leia mais

SQL PostgreSQL. I Criação de Tabelas. Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida

SQL PostgreSQL. I Criação de Tabelas. Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida SQL PostgreSQL I Criação de Tabelas Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida Composição da SQL Linguagem de Definição de Dados (DDL): Comandos para

Leia mais

Linguagem SQL (Parte II)

Linguagem SQL (Parte II) Universidade Federal de Sergipe Departamento de Sistemas de Informação Itatech Group Jr Softwares Itabaiana Site: www.itatechjr.com.br E-mail: [email protected] Linguagem SQL (Parte II Introdução

Leia mais

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Definição de Dados Banco de Dados SQL Structured Query Language Uma das mais importantes linguagens relacionais (se não a mais importante) Exemplos de SGBD que utilizam SQL Oracle Informix

Leia mais

Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA, total e disjuntiva.

Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA, total e disjuntiva. Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA, total e disjuntiva. Seja então o conjunto de entidades pessoa, com os atributos bi_pessoa, nome_pessoa e morada_pessoa,

Leia mais

Sumário. SQL - Criação de Tabelas. Structured Query Language. SQL Versões. André Restivo. October 18, 2010

Sumário. SQL - Criação de Tabelas. Structured Query Language. SQL Versões. André Restivo. October 18, 2010 Sumário SQL - Criação de Tabelas André Restivo Faculdade de Engenharia da Universidade do Porto October 18, 2010 1 Introdução 2 Tabelas 3 Colunas 4 5 Modificação de Tabelas 6 Domínios André Restivo (FEUP)

Leia mais

PostgreSQL Desenvolvedor

PostgreSQL Desenvolvedor CONTEÚDO PROGRAMÁTICO PostgreSQL Desenvolvedor Carga horária: 32 horas TreinaWeb Tecnologia LTDA CNPJ: 06.156.637/0001-58 Av. Paulista, 1765 - Conj 71 e 72 São Paulo - SP CONTEÚDO PROGRAMÁTICO Ementa do

Leia mais

Marcio Victorino

Marcio Victorino 1 2 Agenda Sistemas de Informação Computadorizados. Compartilhamento de Dados. Banco de Dados. Sistema Gerenciador de Banco de Dados. Modelos: Conceitual; Lógico; e Físico. 3 Sistemas de Informação Computadorizados

Leia mais

O projeto físico do bando de dados consiste no mapeamento do projeto lógico para um DBMS real Projeto deve levar em conta fatores como:

O projeto físico do bando de dados consiste no mapeamento do projeto lógico para um DBMS real Projeto deve levar em conta fatores como: Projeto Físico O projeto físico do bando de dados consiste no mapeamento do projeto lógico para um DBMS real Projeto deve levar em conta fatores como: Desempenho Tempo de resposta das transações Alocação

Leia mais

Instituto Federal de Educação, Ciência e Tecnologia de São Paulo

Instituto Federal de Educação, Ciência e Tecnologia de São Paulo Instituto Federal de Educação, Ciência e Tecnologia de São Paulo Segurança em Sistemas de Banco de Dados César Alberto da Silva Presidente Epitácio, 18 de Setembro de 2013 Agenda Por que proteger os dados?

Leia mais

Banco de Dados. Linguagem SQL

Banco de Dados. Linguagem SQL Banco de Dados Linguagem SQL 1 A linguagem SQL: história Em junho de 1970, o matemático Edgar Frank Codd, publicou o artigo "A Relational Model of Data for Large Shared Data Banks" na revista "Communications

Leia mais

SGPS Sistema Gerenciamento de Pet Shop

SGPS Sistema Gerenciamento de Pet Shop Curso Técnico Integrado de Informática 2 Ano Projeto Integrador Formação Profissional SGPS Sistema Gerenciamento de Pet Shop Wilgner Fábio da Silva - 1560042 Brandon N. Saraiva - 1560123 Dezembro de 2016

Leia mais

LINGUAGEM SQL Linguagem usada em SGBD para: Definir estrutura de dados; Modificar dados em um banco de dados; Especificar restrições de segurança; Rea

LINGUAGEM SQL Linguagem usada em SGBD para: Definir estrutura de dados; Modificar dados em um banco de dados; Especificar restrições de segurança; Rea BANCO DE DADOS Prof. Fabiano Taguchi http://fabianotaguchi.wordpress.com [email protected] SQL A Structed Query Language foi desenvolvida em 1974 nos laboratório da IBM em San José na Califórnia,

Leia mais

Tabelas. Banco de Dados I MySQL

Tabelas. Banco de Dados I MySQL FACULDADE ANGLO AMERICANO FOZ DO IGUAÇU Curso de Ciência da Computação 5º Período Disciplina: Banco de Dados I Prof. Erinaldo Sanches Nascimento Tabelas Banco de Dados I MySQL Linguagem de Definição de

Leia mais

A linguagem SQL

A linguagem SQL SQL 2008.1 A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua primeira versão

Leia mais

DDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR

DDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR SQL Structured Query Language, ou Linguagem de Consulta Estruturada, foi desenvolvida pela IBM nos anos 70 para demonstrar a viabilidade do modelo relacional para bancos de dados. No final dos anos 80

Leia mais

Refatoração de Software

Refatoração de Software Refatoração de Software O que é? Atividade em que a estrutura interna de um software é modificada de modo que seu comportamento externo seja preservado; O objetivo é melhorar a qualidade do software; Cada

Leia mais

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS Exemplos de Scripts SQL (PostgreSQL) Pizzaria 1 2 Criação de BANCO DE DADOS CREATE DATABASE nome_do_banco; CREATE DATABASE pizzaria; Criação de TABELAS SOMENTE COM CHAVE PRIMÁRIA CREATE TABLE nome_da_tabela

Leia mais

Banco de Dados. Professora: Luciana Faria

Banco de Dados. Professora: Luciana Faria Banco de Dados Professora: Luciana Faria Introdução ao linguagem é a SQL (Structured Query Language) Linguagem de Consulta Estruturada Para se utilizar, administrar, e trabalhar com um banco de dados é

Leia mais

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL 1. O que é Linguagem SQL 2. Instrução CREATE 3. CONSTRAINT 4. ALTER TABLE 5. RENAME TABLE 6. TRUCANTE TABLE 7. DROP TABLE 8. DROP DATABASE 1 1. O que é Linguagem SQL 2. O SQL (Structured Query Language)

Leia mais

pgmodeler: muito mais que um modelador de bancos de dados PostgreSQL

pgmodeler: muito mais que um modelador de bancos de dados PostgreSQL pgmodeler: muito mais que um modelador de bancos de dados PostgreSQL Raphael Araújo e Silva Bacharel em Ciência da Computação pela Universidade Federal do Tocantins; Há 12 anos atuando como Desenvolvedor

Leia mais

Programação em Banco de dados

Programação em Banco de dados Programação em Banco de dados CREATE DATABASE A03; GO USE A03; GO -- Cria a tabela para armazenar PRODUTO CREATE TABLE PRODUTO( CDPRODUTO INT NOT NULL, NOMEPRODUTO VARCHAR(255), CONSTRAINT PK_PRODUTO PRIMARY

Leia mais

Linguagem SQL Sub-linguagem DDL

Linguagem SQL Sub-linguagem DDL Linguagem SQL Sub-linguagem DDL A SQL - Structured Query Language, foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation Language para suas

Leia mais

Banco de Dados I Introdução SQL

Banco de Dados I Introdução SQL Banco de Dados I Introdução SQL Frederico Queiroga [email protected] https://sites.google.com/site/fredericoqueiroga/ Linguagem SQL Aspectos Gerais: Independência do fabricante: Está incorporada

Leia mais

Lista 02 Sistema de Banco de Dados CAP 241 Computação Aplicada I

Lista 02 Sistema de Banco de Dados CAP 241 Computação Aplicada I Lista 02 Sistema de Banco de Dados CAP 241 Computação Aplicada I Considere o diagrama relacional da Figura 1 e escreva os comandos SQL para executar os exercícios abaixo. Figure 1 Diagrama relacional.

Leia mais

CREATE TABLE AUTOR ( cod_autor int not null primary key, nome_autor varchar (60) )

CREATE TABLE AUTOR ( cod_autor int not null primary key, nome_autor varchar (60) ) TADS Exercício Laboratório I Analise o modelo de banco de dados abaixo: MUSICA FAIXA Codigo_Musica: INTEGER Nome_Musica: VARCHAR(60) Duracao: NUMERIC(6,2) Codigo_Musica: INTEGER (FK) Codigo_CD: INTEGER

Leia mais

Conceito de Campos e Tabelas

Conceito de Campos e Tabelas Aula 04 Conceito de Campos e Tabelas Tabelas É um conjunto de registros de um mesmo tipo onde cada linha é composta por um campo que recebe um valor de atributo. Em um Banco de Dados poderá existir uma

Leia mais

Conceitos SQL SQL 19/03/2017 O que é dado? O que é BD? O que é uma informação? O que é SGBD? O que é SQL? O que é BD? O que é SGBD?

Conceitos SQL SQL 19/03/2017 O que é dado? O que é BD? O que é uma informação? O que é SGBD? O que é SQL? O que é BD? O que é SGBD? - ---@--- Conceitos O que é dado? O que é uma informação? O que é BD? O que é BD? O que é SGBD? O que é? O que é SGBD? Como se comunicar com o SGBD? 1 O que é? Onde Nasceu? Tipos de Bancos Relacionais

Leia mais

Modelagem Física e SQL

Modelagem Física e SQL Programação em Banco de Dados - Parte 1 Modelagem Física e SQL Prof. Pablo Passos [email protected] SQL - Um modelo físico é gerado a partir de um modelo lógico já construído. A geração dos objetos

Leia mais

Material Teórico. Organização de Dados. Responsável pelo Conteúdo: Prof. Ms. Alexander Gobbato Albuquerque

Material Teórico. Organização de Dados. Responsável pelo Conteúdo: Prof. Ms. Alexander Gobbato Albuquerque Banco de Dados Organização de Dados Material Teórico Responsável pelo Conteúdo: Prof. Ms. Alexander Gobbato Albuquerque Revisão Textual: Profa. Esp.Vera Lídia de Sá Cicarone Organização de Dados Introdução

Leia mais

SGATF Sistema para Gerenciamento de Alugueis de Trajes para Festa

SGATF Sistema para Gerenciamento de Alugueis de Trajes para Festa Curso Técnico Integrado de Informática 3 Ano Projeto Integrador Formação Profissional SGATF Sistema para Gerenciamento de Alugueis de Trajes para Festa Rafaela Gonçalves Ferreira-1460056 Dezembro de 2016

Leia mais

Banco de dados 1. Linguagem SQL DDL e DML. Professor: Victor Hugo L. Lopes

Banco de dados 1. Linguagem SQL DDL e DML. Professor: Victor Hugo L. Lopes Banco de dados 1 Linguagem SQL DDL e DML Professor: Victor Hugo L. Lopes Agenda: Introdução à linguagem de dados; DDL; DML; CRUD; Introdução à linguagem SQL. 2 Por que precisamos da linguagem SQL? A algebra

Leia mais

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011 Banco de Dados I Aula 12 - Prof. Bruno Moreno 04/10/2011 Plano de Aula SQL Definição Histórico SQL e sublinguagens Definição de dados (DDL) CREATE Restrições básicas em SQL ALTER DROP 08:20 Definição de

Leia mais

Modelagem Física e SQL

Modelagem Física e SQL Programação em Banco de Dados - Parte 1 Modelagem Física e SQL Prof. Pablo Passos [email protected] SQL - Um modelo físico é gerado a partir de um modelo lógico já construído. A geração dos objetos

Leia mais

Reengenharia, Refatoração e Bad Smell

Reengenharia, Refatoração e Bad Smell DCC / ICEx / UFMG Reengenharia, Refatoração e Bad Smell Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Reengenharia de Sistemas Reestruturação ou reescrita de parte ou de todo um sistema legado

Leia mais

12.4 DER Mais sobre Cardinalidade DER Mais sobre Cardinalidade DER Mais sobre Cardinalidade DER Mais sobre Cardinalidade

12.4 DER Mais sobre Cardinalidade DER Mais sobre Cardinalidade DER Mais sobre Cardinalidade DER Mais sobre Cardinalidade 12.4 DER Mais sobre Cardinalidade A Cardinalidade é um dos princípios fundamentais sobre o relacionamento de um banco de dados relacional. Nela são definidos o número de ocorrências em um relacionamento

Leia mais

BANCO DE DADOS II SQL Básico. COTEMIG Gerson Borges

BANCO DE DADOS II SQL Básico. COTEMIG Gerson Borges BANCO DE DADOS II SQL Básico COTEMIG Gerson Borges [email protected] Definição de Banco de Dados [Elmasri & Navathe, 2000] Um banco de dados é uma coleção de dados relacionados Representando algum

Leia mais

Introdução ao PostgreSQL

Introdução ao PostgreSQL Introdução ao PostgreSQL Fontes Karine Reis Ferreira [email protected] Gilberto Câmara [email protected] Gilberto Ribeiro de Queiroz [email protected] Marcos André Gonçalves - UFMG Parte 3 Aula

Leia mais

ALISYS (Aliança System)

ALISYS (Aliança System) Curso Técnico Integrado de Informática 2 Ano Projeto Integrador Formação Profissional ALISYS (Aliança System) Bianca Puerta Rocha- 1560352 Maria Paula Tenório- 1560212 Dezembro de 2016 1. Introdução 1.1

Leia mais

MySql. Introdução a MySQL. Andréa Garcia Trindade

MySql. Introdução a MySQL. Andréa Garcia Trindade MySql Introdução a MySQL Andréa Garcia Trindade Introdução O que é Banco de Dados SGBD MYSQL Tipos de Tabelas Tipos de Dados Linguagem SQL Comandos SQL O que é um Banco de Dados? Conjuntos de dados Grupo

Leia mais

Programação SQL. Introdução

Programação SQL. Introdução Introdução Principais estruturas duma Base de Dados: Uma BD relacional é constituída por diversas estruturas (ou objectos ) de informação. Podemos destacar: Database: designa a própria BD; Table/Tabela:

Leia mais

BANCO DE DADOS GERENCIAL 1 A U L A 2

BANCO DE DADOS GERENCIAL 1 A U L A 2 BANCO DE DADOS GERENCIAL 1 A U L A 2 N Í V E I S D E V I S Ã O, S U B G R U P O D D L : C R I A N D O B A N C O D E D A D O S, C R I A N D O T A B E L A S, E S T R U T U R A D A T A B E L A CONCEITOS :

Leia mais

Monitoria GDI. Aula Prática. OR (Aula 1)

Monitoria GDI. Aula Prática. OR (Aula 1) Monitoria GDI Aula Prática OR (Aula 1) Roteiro Tipos Tabela de Objetos Herança Métodos Referências 2 Tipos e Tabelas de Objetos Tipos de Objetos oobjetos são abstrações de entidades do mundo real, como

Leia mais

Técnicas de Database Refactoring para ambientes 24x7. Matheus de Oliveira <[email protected]>

Técnicas de Database Refactoring para ambientes 24x7. Matheus de Oliveira <matheus.oliveira@dextra.com.br> Técnicas de Database Refactoring para ambientes 24x7 Matheus de Oliveira Matheus de Oliveira DBA PostgreSQL consultorias e suportes 24x7/8x5

Leia mais

Refatoração: Melhorando código existente

Refatoração: Melhorando código existente Refatoração: Melhorando código existente AgilCoop Cursos de Verão 2010 Mariana Bravo IME/USP Refatoração Uma mudança no sistema que não altera seu comportamento funcional, mas melhora sua estrutura interna

Leia mais

Utilizando o Postgres - comandos SQL para a manipulação de dados

Utilizando o Postgres - comandos SQL para a manipulação de dados Utilizando o Postgres - comandos SQL para a manipulação de dados SELECT A declaração SELECT é utilizada para selecionar os dados de um banco de dados. SELECT nome FROM clientes WHERE A cláusula WHERE é

Leia mais

SQL Linguagem de Definição de Dados

SQL Linguagem de Definição de Dados SQL Linguagem de Definição de Dados Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Structured Query Language Uma das mais importantes linguagens relacionais (se não a mais

Leia mais

Banco de Dados I. Prof. Diego Buchinger. Profa. Rebeca Schroeder Freitas Prof. Fabiano Baldo.

Banco de Dados I. Prof. Diego Buchinger. Profa. Rebeca Schroeder Freitas Prof. Fabiano Baldo. Banco de Dados I Prof. Diego Buchinger [email protected] [email protected] Profa. Rebeca Schroeder Freitas Prof. Fabiano Baldo SQL Structured Query Language SQL O que é Utiliza uma base

Leia mais

Avisos. Sumário. Atividade em lab Aula 29. Atividade em lab Aula 29. Programando com SQL Triggers EXERCÍCIO LAB SP. Vista da segunda prova

Avisos. Sumário. Atividade em lab Aula 29. Atividade em lab Aula 29. Programando com SQL Triggers EXERCÍCIO LAB SP. Vista da segunda prova Ciência da Computação GBC043 Sistemas de Banco de Dados Programando com SQL s Avisos Vista da segunda prova Data: 03/06 das 13:40 às 15:00h Local: sala 1B137 Profa. Maria Camila Nardini Barioni [email protected]

Leia mais

BANCO DE DADOS PARA NINJAS

BANCO DE DADOS PARA NINJAS BANCO DE DADOS PARA NINJAS PARANGABA RONNISON REGES VIDAL Ceará, 25 de Outubro de 2016 ROTEIRO l Conhecimento Pra que usar? Ferramentas SGBD's Consultas (Jutsu) Linguagem de Consulta PRA QUE USAR? PRA

Leia mais

Sumário: 1) Trabalhando com Constraints: - NOT NULL - UNIQUE - PRIMARY KEY - FOREIGN KEY - DEFAULT

Sumário: 1) Trabalhando com Constraints: - NOT NULL - UNIQUE - PRIMARY KEY - FOREIGN KEY - DEFAULT Sumário: 1) Trabalhando com Constraints: - NOT NULL - UNIQUE - PRIMARY KEY - FOREIGN KEY - DEFAULT 2) Componentes do Select: - DISTINCT - WHERE - AND e OR - ORDER BY 2) Visão Geral - A SQL é dividida em

Leia mais

STRBY Sistema de Gerenciamento de Lojas de Roupas

STRBY Sistema de Gerenciamento de Lojas de Roupas Curso Técnico Integrado de Informática 3 Ano Projeto Integrador Formação Profissional STRBY Sistema de Gerenciamento de Lojas de Roupas Isabelle Cardoso 1556014X Dezembro de 2017 1. Introdução 1.1 Escopo

Leia mais

2008.1 SQL. Autor: Renata Viegas

2008.1 SQL. Autor: Renata Viegas SQL Autor: Renata Viegas A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua

Leia mais

Projeto Físico de Banco de Dados

Projeto Físico de Banco de Dados Administração de Banco de Dados Projeto Físico de Banco de Dados É uma atividade na qual o objetivo não é apenas obter uma estrutura de dados apropriada para armazenamento, mas desenvolve-lo de maneira

Leia mais

Prof. Carlos Majer Aplicações Corporativas UNICID

Prof. Carlos Majer Aplicações Corporativas UNICID Este material pertence a Carlos A. Majer, Professor da Unidade Curricular: Aplicações Corporativas da Universidade Cidade de São Paulo UNICID Licença de Uso Este trabalho está licenciado sob uma Licença

Leia mais

A U L A 8 C O N S U L T A S U N I N D O D U A S O U M A I S T A B E L A S P A R T E 2

A U L A 8 C O N S U L T A S U N I N D O D U A S O U M A I S T A B E L A S P A R T E 2 BANCO DE DADOS GERENCIAL 1 A U L A 8 C O N S U L T A S U N I N D O D U A S O U M A I S T A B E L A S P A R T E 2 Na aula passada, uma situação muito comum é, ao construirmos uma consulta (select), termos

Leia mais

Tarefa Orientada 8 Criação de tabelas

Tarefa Orientada 8 Criação de tabelas Tarefa Orientada 8 Criação de tabelas Objectivos: Iniciar o MS SQL Server Manegement Studio Criar tabelas Especificar tipos de dados Definir restrições Alterar as definições de uma tabela Eliminar uma

Leia mais

Processo de Seleção para Tutor bolsista (presencial e a distância) UAB/CAPES/MEC

Processo de Seleção para Tutor bolsista (presencial e a distância) UAB/CAPES/MEC Processo de Seleção para Tutor bolsista (presencial e a distância) UAB/CAPES/MEC INSTRUÇÕES 1. Aguarde autorização para abrir o caderno de prova. 2. Confira as páginas deste caderno de provas. Caso falte

Leia mais

Banco de dados. Prof. Me. Hélio Esperidião

Banco de dados. Prof. Me. Hélio Esperidião Banco de dados Prof. Me. Hélio Esperidião Introdução Banco de dados Prof. Msc. Hélio Esperidião Banco de dados Podemos entender por banco de dados qualquer sistema que reúna e mantenha organizada uma série

Leia mais

Persistência de Classe e Auto- Relacionamento em Tabelas de Banco de Dados

Persistência de Classe e Auto- Relacionamento em Tabelas de Banco de Dados UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 1 Persistência de Classe e Auto- Relacionamento em Tabelas de Banco de Dados 1) Introdução! Em algumas situações, pode ser necessário

Leia mais

Prefeitura da Cidade de Nova Iguaçú. SEMED Secretaria Municipal de Educação. Coordenadoria Municipal de Ciência e Tecnologia

Prefeitura da Cidade de Nova Iguaçú. SEMED Secretaria Municipal de Educação. Coordenadoria Municipal de Ciência e Tecnologia Prefeitura da Cidade de Nova Iguaçú SEMED Secretaria Municipal de Educação Coordenadoria Municipal de Ciência e Tecnologia Projeto Sistema de Monitoramento do Usuário da Rede de Proteção Social de Nova

Leia mais

Banco de Dados. Diego Silveira Costa Nascimento. 20 de março de Instituto Federal do Rio Grande do Norte

Banco de Dados. Diego Silveira Costa Nascimento. 20 de março de Instituto Federal do Rio Grande do Norte Banco de Dados Diego Silveira Costa Nascimento Instituto Federal do Rio Grande do Norte [email protected] 20 de março de 2015 Ementa do Curso 1 Introdução 2 Abordagem Entidade-relacionamento

Leia mais

Disciplina: Banco de Dados Tema: SQL Parte 2

Disciplina: Banco de Dados Tema: SQL Parte 2 Disciplina: Banco de Dados Tema: SQL Parte 2 PROFESSOR: DANILO MONTEIRO EMAIL: [email protected] O que foi visto na aula passada? create database Drop database Create table Drop table [email protected]

Leia mais

BCD29008 Banco de dados

BCD29008 Banco de dados BCD29008 Banco de dados Modelo ER & Modelo Relacional Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José [email protected] http://docente.ifsc.edu.br/mello/bcd 18 de

Leia mais

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar - Aula 1 - PROJETO FÍSICO DE BANCOS DE DADOS 1. INTRODUÇÃO No módulo passado estudamos as técnicas utilizadas para se criar um projeto de banco de dados (BD): Modelo Entidade-Relacionamento, Modelo Lógico

Leia mais

Sistema para gerenciamento de pizzaria e restaurante

Sistema para gerenciamento de pizzaria e restaurante Curso Técnico Integrado de Informática 3 Ano Projeto Integrador Formação Profissional Sistema para gerenciamento de pizzaria e restaurante Abner José da Silva - 1560298 Dezembro de 2017 1. Introdução 1.1

Leia mais

TRABALHO DE BANCO DE DADOS

TRABALHO DE BANCO DE DADOS Curso Superior em Análise e Desenvolvimento de Sistemas Banco de Dados BD1A3 TRABALHO DE BANCO DE DADOS Érika Henrique Gamas 1580132 Flávia Gomes Pereira 1580108 Julho de 2016 Sumário 1. SITUAÇÃO...3 2.

Leia mais

Aula 6 BD1 Modelo Relacional. Profa. Elaine Faria UFU

Aula 6 BD1 Modelo Relacional. Profa. Elaine Faria UFU Aula 6 BD1 Modelo Relacional Profa. Elaine Faria UFU - 2017 Introdução Modelo Relacional Proposto por Codd em 1970 Revolucionou a área de banco de dados É o modelo dominante base para os SGBDs líderes

Leia mais

Introdução em Banco de Dados

Introdução em Banco de Dados Introdução em Banco de Dados Aula07 ComandosSQLeMySQL Prof: Franciel MySQL é um banco de dados cliente servidor gratuito É simples, tem alto desempenho, é disponível para várias plataformas e é robusto

Leia mais

2008.1. A linguagem SQL

2008.1. A linguagem SQL SQL 2008.1 A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua primeira versão

Leia mais

Projeto Conceitual Usando o Modelo-Entidade Relacionamento

Projeto Conceitual Usando o Modelo-Entidade Relacionamento Projeto Conceitual Usando o Modelo-Entidade Relacionto 5-1 Visão Avançada do Projeto de Banco de Dados Projeto conceitual : (MER é usado neste estágio) O que são as entidades e relaciontos no cenário?

Leia mais

MySQL + PHP 06/05/2015. IFSC/campus Florianópolis Programação para a WEB Prof. Herval Daminelli

MySQL + PHP 06/05/2015. IFSC/campus Florianópolis Programação para a WEB Prof. Herval Daminelli 1 MySQL + PHP MySQL é um dos sistemas de gerenciamento de banco de dados mais usados da atualidade, que utiliza a linguagem de manipulação de dados chamada SQL (structured query language ou linguagem de

Leia mais

Triggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL

Triggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL Prof. Ms. Luiz Alberto Contato: [email protected] Linguagem de Programação de Banco de Dados Triggers em PostgreSQL Todos os bancos de dados comerciais possuem uma linguagem procedural auxiliar para a

Leia mais

A Linguagem SQL. Tecnologia de Base de Dados. MSc. Eugénio. Macumbe

A Linguagem SQL. Tecnologia de Base de Dados. MSc. Eugénio. Macumbe A Linguagem SQL Tecnologia de Base de Dados MSc. Eugénio. Macumbe A Linguagem SQL As raízes da linguagem SQL remontam a 1974, altura em que na IBM corp. se desenvolvia o protótipo de um sistema relacional

Leia mais