apostila oficial de banco de dados

65
1 CURSO TÉCNICO EM INFORMÁTICA PARA INTERNET   TURMA 2015 APOSTIL A DE IN TRODUÇÃO A BANCO DE DADOS NOME_____________________________________________________________

Upload: samir-haddad

Post on 15-Feb-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 165

1

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

APOSTILA DE INTRODUCcedilAtildeO A

BANCO DE DADOS

NOME_____________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 365

3

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

dependendo do contexto a tecnologia pode ser tudo pra nossa vida melhorar A tecnologia eacute de

uma forma geral o encontro entre a ciecircncia e a engenharia

Computador maacutequina composta de um conjunto de partes eletrocircnicas e eletromecacircnicas capaz

de receber armazenar tratar e produzir informaccedilotildees de forma automaacutetica com grande rapidez e

precisatildeo Eacute um instrumento para agilizar o tratamento da informaccedilatildeo

A tecnologia de computadores fez um progresso incriacutevel nos aproximadamente 55 anos

desde que foi criado o primeiro computador Preccedilos caiacuteram a velocidade de processamento

aumentou e armazenar grandes massas de dados a baixo custo jaacute eacute realidade

Durante a deacutecada de 70 o desempenho dos computadores melhorou cerca de 25 a 30 ao

ano

Com a utilizaccedilatildeo de circuitos integrados nos microcomputadores levou a uma maior otimizaccedilatildeo

(35 ao ano de desempenho)Houve uma queda no desenvolvimento de sistemas utilizando linguagem Assembly

(linguagem de maacutequina) e aumento da utilizaccedilatildeo de sistemas baacutesicos padronizados (Unix Linux)

e automaticamente novas arquiteturas foram se consagrando comercialmente Ao longo do

tempo portanto a tecnologia e os estilos usados na construccedilatildeo de computadores apresentam

pontos comuns e permitem uma classificaccedilatildeo dos computadores em geraccedilotildees

Caracteriacutesticas fundamentais do computador

Anotaccedilotildees

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 465

4

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Vantagens do uso do computador

Para fixar

1 Escreva com suas palavras o que eacute um computador e o que eacute informaacutetica

2 Quais satildeo as vantagens de se utilizar um computador na vida profissional

3 Como vocecirc escolheria o melhor computador para atender agraves suas necessidades

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 565

5

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

A PRIMEIRA GERACcedilAtildeO (1940 ndash 1950)

O primeiro computador eletrocircnico digital foi resultado dos trabalhos de um professor de Fiacutesica da

Universidade de Iowa EUA John Vincent Atanasoff que na busca de um meio para resolver

equaccedilotildees lineares teve a ideia de combinar simultaneamente um circuito eletrocircnico com uma

memoacuteria de varredura mecacircnica usando capacitores Em sua concepccedilatildeo baacutesica o dispositivo

consistia de uma memoacuteria composta de cilindros rotativos

Provido com contatos eleacutetricos na forma de pequenos pinos de latatildeo interligados com

capacitores de papel cuja variaccedilatildeo de carga durante a operaccedilatildeo era monitorado e ajustado por

um circuito eleacutetrico Por sua vez a loacutegica do sistema era feito com 255 vaacutelvulas tipo duplo triacuteodoNo iniacutecio da segunda guerra mundial os computadores eletromecacircnicos disponiacuteveis como

o ldquoASCCrdquo - Automatic Sequence Controlled Calculator - desenvolvido pela IBM EUA jaacute natildeo eram

tatildeo raacutepidos para resolver os complicados caacutelculos baliacutesticos exigidos pelos armamentos usados

no novo tipo de guerra aeacuterea de forma que o aparelho de Atanasoff por ter uma concepccedilatildeo

diferente natildeo mais usando de multivibradores biestaacuteveis ou flip-flop poreacutem de um conceito

eletrocircnico foi agrave origem do emprego da vaacutelvula na incipiente ciecircncia da computaccedilatildeo Assim em 5

de junho de 1943 o governo americano assina um contrato com a universidade da Pensilvacircniapara desenvolver o projeto do ldquoENIACrdquo ou - Electronic Numerical Integrator and Computer

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 665

6

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ENIAC ndash PRIMEIRO COMPUTADOR

Computador integrado numeacuterico eletrocircnico foi o primeiro computador digital eletrocircnico de grandeescala O ENIAC comeccedilou a ser desenvolvido em 1946 durante a II Guerra Mundial para

computar trajetoacuterias taacuteticas que exigissem conhecimento substancial em matemaacutetica mas soacute se

tornou operacional apoacutes o final da guerra

Sua capacidade de processamento era de 5000 operaccedilotildees por segundo

Criado na segunda guerra tinha como principal finalidade caacutelculos baliacutesticos

Possuiacutea 18000 vaacutelvulas termiocircnicas de 160 kW de potecircncia

Pesava 30 Toneladas Esta maacutequina natildeo tinha sistema operacional e seu funcionamento era parecido com

uma calculadora simples de hoje O ENIAC assim como uma calculadora tinha de ser

operado manualmente

A calculadora efetua os caacutelculos a partir das teclas pressionadas fazendo interaccedilatildeo direta com o

hardware no qual era preciso conectar fios relecircs e sequecircncias de chaves para que se

determinasse a tarefa a ser executada A cada tarefa diferente o processo deveria ser refeito A

resposta era dada por uma sequecircncia de lacircmpadas A uacutenica forma de armazenar dados era

atraveacutes de cartotildees perfurados

SEGUNDA GERACcedilAtildeO DOS COMPUTADORES - (1952 - 1964)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 765

7

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Esta Geraccedilatildeo foi originada pela revoluccedilatildeo dos Transistores os quais substituiacuteram as volumosas

vaacutelvulas Houve uma enorme diminuiccedilatildeo em cabos e fios tendo em vista que cada transistor

substituiacutea dezenas de vaacutelvulas Desta maneira os computadores tornaram-se consideravelmente

menores e devido a isso muito mais velozes O computador comeccedila a ser utilizado nas grandes

empresas Projetos foram implementados baseados na utilizaccedilatildeo de transistores houve grandes

avanccedilos no que se refere agraves unidades de memoacuteria principal com a substituiccedilatildeo do sistema de

tubos de raios catoacutedicos pelo de nuacutecleos magneacuteticos (usados ateacute hoje)

A memoacuteria teve um aumento em sua capacidade de armazenamento chegando a 32K

Principais computadores IBM 1401 IBM 7094 Honeywell 800 e IBM 7090

Tanto a vaacutelvula quanto o transistor realizavam um processamento de cada vez Com o

desenvolvimento das teacutecnicas de integraccedilatildeo surgiram os Circuitos Integrados onde numa

pequena caacutepsula continha vaacuterias dezenas centenas ou milhares de transistores ocupando umaaacuterea menor que uma unha dando o nome de microprocessador (processador miniatura) A

linguagem de programaccedilatildeo foi simplificada e jaacute se podia programar atraveacutes de mnemocircnicos

(comandos abreviados) Esta linguagem denomina-se ASSEMBLER As operaccedilotildees de caacutelculos

eram realizadas em milioneacutesimos de segundos Realizando 204000 adiccedilotildeessegundos Aleacutem do

surgimento dos nuacutecleos de ferrite fitas e tambores magneacuteticos passam a ser usados como

memoacuteria

Eacute possiacutevel dividir os computadores desta geraccedilatildeo em duas grandes categoriassupercomputadores e minicomputadores

IBM 7030 tambeacutem conhecido por Strech foi o primeiro supercomputador lanccedilado na

segunda geraccedilatildeo desenvolvido pela IBM Seu tamanho era bem reduzido comparado com

maacutequinas como o ENIAC podendo ocupar somente uma sala comum Ele era utilizado por

grandes companhias custando em torno de 13 milhotildees de doacutelares na eacutepoca Esta maacutequina

executava caacutelculos na casa dos microssegundos o que permitia ateacute um milhatildeo de operaccedilotildees por

segundo Desta maneira um novo patamar de velocidade foi atingido Comparado com os da

primeira geraccedilatildeo os supercomputadores como o IBM 7030 eram mais confiaacuteveis

PDP-8 foi um dos mini-computadores mais conhecidos da segunda geraccedilatildeo Basicamente

foi uma versatildeo mais baacutesica do supercomputador sendo mais atrativo do ponto de vista financeiro

(centenas de milhotildees de doacutelares) Eram menores do que os supercomputadores mas mesmo

assim ainda ocupavam um bom espaccedilo no cocircmodo

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 865

8

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

TERCEIRA GERACcedilAtildeO DOS COMPUTADORES - (1964 - 1971)

A 3ordf Geraccedilatildeo surgiu com a utilizaccedilatildeo dos Circuitos Integrados ndash SLT (Solid Logic Technolo-

gy) uma teacutecnica de micro circuitos Nesta geraccedilatildeo os computadores podiam realizar vaacuterios

processamentos simultacircneos As teacutecnicas de integraccedilatildeo evoluiacuteram de SSI (integraccedilatildeo em

pequena escala) para MSI (integraccedilatildeo em meacutedia escala) LSI (integraccedilatildeo em grande escala) e

VLSI (integraccedilatildeo em muito grande escala) Esta classificaccedilatildeo eacute baseada na quantidade de

componentes que o integrado conteacutem A programaccedilatildeo dos computadores desta geraccedilatildeo foi

facilitada pelo aparecimento de linguagens orientadas para o problema especiacutefico As linguagenssatildeo de natureza universal e assemelham-se cada vez mais a linguagem do homem As

operaccedilotildees de caacutelculos eram realizadas em bilioneacutesimos de segundos Realizando 1280000

adiccedilotildeessegundos

Com a terceira geraccedilatildeo dos computadores surgiram tambeacutem os teclados para digitaccedilatildeo de

comandos Monitores tambeacutem permitiam a visualizaccedilatildeo de sistemas operacionais muito

primitivos ainda completamente distantes dos sistemas graacuteficos que conhecemos e utilizamos

atualmente

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 965

9

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Apesar das facilidades trazidas pelos semicondutores os computadores dessa geraccedilatildeo

natildeo foram reduzidos sendo que um dos modelos de mais sucesso (o IBM 360 que vendeu mais

de 30 mil unidades) chegava a pesar mais do que os antecessores Nessa eacutepoca (final da deacutecada

de 1970 e iniacutecio da deacutecada de 1980) os computadores passaram a ser mais acessiacuteveis

Outro grande avanccedilo da terceira geraccedilatildeo foi a adiccedilatildeo da capacidade de upgrade nas

maacutequinas As empresas poderiam comprar computadores com determinadas configuraccedilotildees e

aumentar as suas capacidades de acordo com a necessidade pagando relativamente pouco por

essas facilidades IBM 360

QUARTA GERACcedilAtildeO DOS COMPUTADORES - (1971 - 1980)

A quarta geraccedilatildeo teve iniacutecio em 1971 quando a Intel lanccedilou o primeiro microprocessador

o Intel 4004 muito mais potente que os circuitos SSI e MSI de ateacute entatildeo e soacute terminou em 1981

com o lanccedilamento dos circuitos ULSI (Circuitos de Escala Ultra Grande) Tem como marco inicial

com os computadores pessoais surgimento do microprocessador a reduccedilatildeo no tamanho dos

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1065

10

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

computadores foi muito grande Surgem muitas linguagens de alto niacutevel e nasce agrave teleinformaacutetica

transmissatildeo de dados entre computadores atraveacutes de rede

Continuou-se o desenvolvimento do Circuito Integrado e a busca de se colocar cada vez

mais um maior nuacutemero de componentes em um chip

A Intel comeccedilou suas pesquisas nessa aacuterea em 1969 Os resultados foram vistos quando

em novembro de 1971 buscando atender ao pedido de uma empresa japonesa que precisava de

um circuito integrado especial a Intel elaborou o 4004 criado por Federico Faggin Ted Hoff

e Stanley Mazor primeiro microprocessador comercial

Internet

De 1969 a 1972 foi criada a Arpanet que deu iniacutecio a Internet (teleinformaacutetica) que conhecemos

hoje A rede entrou no ar em dezembro de 1969 no EUA Eles eram interligados atraveacutes de links

de 50 k criados usando linhas telefocircnicas dedicadas adaptadas para o uso de transmissatildeo de

dados

Em 1971 ocorre a transmissatildeo do primeiro e-mail realizada pela Universidade da Califoacuternia para

um computador na Stanford Research Institute com o texto ldquoLOGINrdquo mas chegou apenas LO

A Ethernet surgiu entre 1972 e 1973 dentro do PARC (o laboratoacuterio de desenvolvimento da Xerox

nos Estados Unidos) onde foi feito o primeiro teste de transmissatildeo de dados usando esse

padratildeo

Em 1974 surgiu o TCPIP que acabou se tornando o protocolo definitivo para uso

na ARPANET e mais tarde na Internet

QUINTA GERACcedilAtildeO DOS COMPUTADORES ndash (1980Atualmente)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1165

11

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Desde o iniacutecio da era dos microcomputadores o avanccedilo tem sido constante O computador

que se fabrica hoje dentro de alguns meses jaacute estaacute obsoleto

Atualmente o que vem surgindo satildeo inuacutemeras renovaccedilotildees com o objetivo de evoluir os sistemas

rdquoEmbora os paradigmas possam mudar as pesquisas normalmente evoluem baseadas em

resultados do passado que se constituem em fundamentos de um desenvolvimento posteriorhelliprdquo

Para Fixar

Escreva um breve resumo sobre o processo evolutivo dos computadores

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________ ___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

__________________________________________________________________

SOFTWARES

O QUE Eacute Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por

um computador com o objetivo de executar tarefas especiacuteficas Em um computador o software eacute

classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer instruccedilotildees para o hardware

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1265

12

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Diferentemente do que muitas pessoas imaginam o computador natildeo faz nada sozinho Ele

apenas processa uma seacuterie de informaccedilotildees inseridas pelo usuaacuterio para entatildeo fornecer os

resultados As informaccedilotildees inseridas e os resultados que recebemos precisam estar num formato

que noacutes humanos conseguimos entender Para facilitar essa comunicaccedilatildeo entre homem e

computador foram criados os softwares ou programas de computador Na realidade tudo que

fazemos com um computador eacute pela execuccedilatildeo desses programas

Um sistema operacional eacute um programa que atua como intermediaacuterio entre o usuaacuterio e o

hardware de um computador O propoacutesito de um sistema operacional eacute propiciar um ambiente no

qual o usuaacuterio possa executar outros programas de forma conveniente por esconder detalhes

internos de funcionamento e eficiecircncia por procurar gerenciar de forma justa os recursos do

sistema

Vimos que o sistema operacional interage diretamente com o hardware e com isso eacuteinfluenciado diretamente pela evoluccedilatildeo do mesmo Portanto a evoluccedilatildeo dos sistemas

operacionais estaacute em grande parte relacionada ao desenvolvimento de equipamentos cada vez

mais velozes compactos e de custos baixos e agrave necessidade de aproveitamento e controle

destes recursos

Assim ao falar sobre o histoacuterico dos sistemas operacionais estaremos recordando um

pouco a evoluccedilatildeo do hardware Devemos lembrar que as datas das fases da evoluccedilatildeo satildeo

aproximadasHISTOacuteRIA

Desde os tempos do computador programado por chaves e cabos ateacute o surgimento do

teclado e impressora de caracteres procurou-se ao longo do processo evolutivo do computador

tornar a sua utilizaccedilatildeo mais amigaacutevel precisa raacutepida e eficaz

Primeira geraccedilatildeo (1945-1955)

Vaacutelvulas e Paineacuteis de Programaccedilatildeo - No iniacutecio da Segunda Guerra Mundial surgiram os primeiros

computadores digitais formados por milhares de vaacutelvulas que ocupavam aacutereas enormes sendo

de funcionamento lento e duvidoso O ENIAC foi o primeiro computador digital de propoacutesito geral

Criado para a realizaccedilatildeo de caacutelculos baliacutesticos A programaccedilatildeo era feita em paineacuteis atraveacutes de

fios utilizando linguagem de maacutequina Natildeo existia o conceito de sistema operacional Outros

computadores foram construiacutedos nessa eacutepoca mas eram utilizados apenas em universidades e

oacutergatildeos militares

SEGUNDA GERACcedilAtildeO (1956-1965)

Transistores e Sistemas em Lote (batch)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1365

13

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

A criaccedilatildeo do transistor e das memoacuterias magneacuteticas contribuiu para o enorme avanccedilo dos

computadores da eacutepoca O transistor permitiu o aumento da velocidade e da confiabilidade do

processamento as memoacuterias magneacuteticas permitiram o acesso mais raacutepido aos dados maior

capacidade de armazenamento e computadores menores

Surgiram os primeiros sistemas operacionais para tentar automatizar as tarefas manuais

ateacute entatildeo realizadas e as primeiras linguagens de programaccedilatildeo como Assembly e Fortran Os

programas deixaram de ser feitos diretamente no hardware o que facilitou enormemente o

processo de desenvolvimento de programas Surgiu o processamento em batch em que um lote

(batch) de programas e de dados era submetido ao computador por vez

Terceira geraccedilatildeo (1966-1980)

Circuitos Integrados e Multiprogramaccedilatildeo

Por meio dos circuitos integrados e posteriormente dos microprocessadores foi possiacutevelviabilizar e difundir o uso de sistemas computacionais por empresas devido agrave diminuiccedilatildeo de seus

custos de aquisiccedilatildeo Houve um aumento no poder de processamento e diminuiccedilatildeo no tamanho

dos equipamentos

A evoluccedilatildeo dos processadores de entradasaiacuteda permitiu que enquanto um programa

esperasse por uma operaccedilatildeo de leituragravaccedilatildeo o processador executasse um outro programa

Para tal a memoacuteria foi dividida em particcedilotildees em que um programa esperava sua vez para ser

processado A essa teacutecnica de compartilhamento da memoacuteria principal e processador deu-se onome de multiprogramaccedilatildeo

QUARTA GERACcedilAtildeO (1981-1990)

Computadores Pessoais

Os mini e superminicomputadores se firmaram no mercado e os microcomputadores

ganharam um grande impulso Surgem as estaccedilotildees de trabalho (workstations) que apesar de

monousuaacuterias permitem que se executem diversas tarefas concorrentemente criando o conceito

de multitarefa

No final dos anos 80 os computadores tiveram um grande avanccedilo decorrente de aplicaccedilotildees que

exigiam um enorme volume de caacutelculos Para acelerar o processamento foram adicionados

outros processadores exigindo dos sistemas operacionais novos mecanismos de controle e

sincronismo Com o multiprocessamento foi possiacutevel a execuccedilatildeo de mais de um programa

simultaneamente ou ateacute de um mesmo programa por mais de um processador Foram

introduzidos processadores vetoriais e teacutecnicas de paralelismo de processamento fazendo com

que os computadores se tornassem ainda mais poderosos

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1465

14

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O uso das redes distribuiacutedas se difundiu por todo o mundo permitindo o acesso a outros

sistemas de computaccedilatildeo independentemente de cidade paiacutes e ateacute mesmo fabricante Os

softwares de rede passaram a estar intimamente relacionados com o sistema operacional de cada

maacutequina e surgem os sistemas operacionais de rede

QUINTA GERACcedilAtildeO (1991ATUALMENTE)

Houve grandes avanccedilos em termos de hardware software e telecomunicaccedilotildees como

consequecircncia da evoluccedilatildeo das aplicaccedilotildees que necessitavam cada vez mais de capacidade de

processamento e armazenamento de dados Sistemas especialistas sistemas multimiacutedia bancos

de dados distribuiacutedos inteligecircncia artificial e redes neurais satildeo apenas alguns exemplos da

necessidade cada vez maior de informaccedilatildeo e de capacidade de processamento O conceito de

processamento distribuiacutedo eacute explorado nos sistemas operacionais de forma que suas funccedilotildees

estejam espalhadas por vaacuterios processadores atraveacutes de redes de computadores A deacutecada de 90 foi definitiva para a consolidaccedilatildeo dos sistemas operacionais baseados em

interfaces graacuteficas

Atualmente temos as plataformas multicore (vaacuterios nuacutecleos) disponiacuteveis em computadores

pessoais e ateacute notebooks possibilitando cada vez mais a paralelizaccedilatildeo de aplicaccedilotildees e elevando

em muito o tempo de execuccedilatildeo dos programas Os fanaacuteticos pelos jogos de computador que o

digam

Os sistemas operacionais - satildeo parte fundamental dos computadores satildeo responsaacuteveis pororganizar os processos (programas) que estatildeo sendo executados pelo processador criando uma

fila de processos que garante que todos receberatildeo sua parcela de processamento

Para Fixar

Escreva um breve resumo sobre o processo evolutivo dos Softwares

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________ __________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1565

15

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

PRINCIacutePAIS SISTEMAS OPERACIONAIS

Principais SO que deram iniacutecio a era Windows MCs Linux e Unix

1987 ndash Andrew Tanenbaum um professor de computaccedilatildeo holandecircs desenvolve um sistema

operacional didaacutetico simplificado mas respeitando a API do UNIX que foi batizado como Minix

1987 ndash IBM e Microsoft apresentam a primeira versatildeo do OS2 um sistema multitarefa destinado

a substituir o MS-DOS e o Windows Mais tarde as duas empresas rompem a parceria a IBM

continua no OS2 e a Microsoft investe no ambiente Windows

1991 ndash Linus Torvalds um estudante de graduaccedilatildeo Finlandecircs inicia o desenvolvimento do Linux

lanccedilando na rede Usenet o nuacutecleo 001 logo abraccedilado por centenas de programadores ao redor

do mundo

1993 ndash a Microsoft lanccedila o Windows NT o primeiro sistema 32 bits da empresa

Capiacutetulo 2 ndash Banco de Dados

Banco de dados eacute um arquivo especial que armazena dados arrumados sob forma de

tabelas ou matrizes (em linhas e colunas) Quando um conjunto de informaccedilotildees possui muitasvariaacuteveis interligadas entre si eacute aconselhaacutevel que sejam armazenadas e trabalhadas em um

banco de dados Os bancos de dados fornecem uma seacuterie de funcionalidades que natildeo satildeo

encontradas em arquivos comuns ldquoBancos de dados satildeo coleccedilotildees de informaccedilotildees que se

relacionam de forma que crie um sentidordquo Satildeo de vital importacircncia para empresas e haacute duas

deacutecadas se tornaram a principal peccedila dos sistemas de informaccedilatildeo ldquoFonte Wikipeacutediardquo

Entatildeo um banco de dados eacute uma entidade na qual eacute possiacutevel armazenar dados de maneira

estruturada e com a menor redundacircncia possiacutevel Estes dados devem poder ser utilizadas porprogramas por usuaacuterios diferentes Assim a noccedilatildeo baacutesica de dados eacute acoplada geralmente a

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1665

16

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

uma rede a fim de poder pocircr conjuntamente estas informaccedilotildees daiacute o nome banco Fala-se

geralmente de sistema de informaccedilatildeo para designar toda a estrutura que reuacutene os meios

organizados para poder compartilhar dados

DADOS amp INFORMACcedilOtildeES

Muitos consideram dados e informaccedilotildees como palavras sinocircnimas mas na verdade natildeo satildeo

Para entender o que eacute um banco de dados eacute muito importante saber a diferenccedila entre essas duas

palavras

Dados satildeo fatos brutos em sua forma primaacuteria E muitas vezes os dados podem natildeo fazer

sentido sozinhos

Informaccedilotildees consistem no agrupamento de dados de forma organizada para fazer sentido

gerar conhecimento

Por exemplo o nuacutemero 2001 isoladamente faz algum sentido Natildeo Isso eacute um dado E se eu

dissesse ldquoAno do atentado terrorista agraves torres gecircmeas 2001Prime Agora faz sentido Isso eacute

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1765

17

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

uma informaccedilatildeo Um banco de dados eacute uma estrutura de dados organizada que permite a

extraccedilatildeo de informaccedilotildees

Metadados ndash Eacute todo dado relativo a outro dado eacute chamado de metadados No exemplo anterior

do ano 2001 o dado ldquoAno do atentado terrorista agraves torres gecircmeasrdquo eacute um metadado pois ele eacute um

dado sobre o dado ldquo2001rdquo Outro exemplo mais comum em banco de dados o campo telefone da

tabela cliente tem entre outros os seguinte metadados nome (telefone) tipo (texto) tamanho (30

caracteres) obrigatoriedade (natildeo) etc

Um banco de dados eacute formado por dado e metadados Sem os metadados natildeo seria

possiacutevel organizar e extrair informaccedilotildees de um banco de dados

Para Fixar

Dados - Em informaacutetica designa-se por dados os elementos de partida que servem de base

para o tratamento e sobre os quais o computador efetua as operaccedilotildees necessaacuterias agrave tarefa emquestatildeo

Os dados satildeo uma representaccedilatildeo dos fatos conceitos ou instruccedilotildees de uma maneira

normalizada que se adapte agrave comunicaccedilatildeo interpretaccedilatildeo e processamento pelo ser humano ou

atraveacutes de maacutequinas automaacuteticas

Os dados satildeo representados por siacutembolos como por exemplo as letras do alfabeto a b c

etc mas natildeo satildeo em si a informaccedilatildeo desejada

ExemploO I O C O M B - satildeo dados mas natildeo eacute informaccedilatildeo perceptiacutevel ao homem

A informaccedilatildeo natildeo eacute mais do que dados organizados e ordenados de forma uacutetil Isto eacute informaccedilatildeo

eacute o conhecimento produzido como resultado do processamento de dados

Se processarmos os dados que tiacutenhamos anteriormente entatildeo obtemos a informaccedilatildeo

O I O C O M B - Dados

- Processamento

C O M B O I O ndash Informaccedilatildeo

Para fixar

Escreva o significado de

Dados___________________________________________________________________

_________________________________________________________________________

Informaccedilatildeo_______________________________________________________________

_________________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1865

18

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Metadados_______________________________________________________________

_________________________________________________________________________

Banco de

dados___________________________________________________________________

_________________________________________________________________________

A histoacuteria dos bancos de dados

Hoje os bancos de dados satildeo essenciais para muitas empresas e estatildeo no coraccedilatildeo de

muitos sistemas computacionais Ter acesso raacutepido agraves informaccedilotildees eacute muito importante para a

correta tomada de decisotildees em um negoacutecio Se vocecirc pretende trabalhar com desenvolvimento de

softwares com certeza precisaraacute trabalhar com bancos de dados em algum momento Conhecer

a histoacuteria dos bancos de dados e como eles evoluiacuteram eacute muito importante para entender como os

bancos de dados mais comuns satildeo organizados Entatildeo como aconteceu a evoluccedilatildeo dos bancos

de dados

Antigamente as empresas armazenavam dados em fichas de papel que eram organizadas

em arquivos fiacutesicos atraveacutes de pastas Extrair informaccedilotildees e manter esses arquivos organizados

era uma tarefa muito custosa Aleacutem disso o acesso agrave informaccedilatildeo dependia da localizaccedilatildeo

geograacutefica dos arquivos Enfim esses arquivos fiacutesicos evoluiacuteram para arquivos digitais No iniacutecio

cada entidade (clientes funcionaacuterios produtos etc) era um arquivo de dados que eram

acompanhados de um ldquosoftware simplesrdquo para manipular os dados do arquivo esses softwares

permitiam realizar operaccedilotildees de cadastro alteraccedilatildeo exclusatildeo e consulta nos arquivos digitais De

fato melhorou bastante principalmente a tarefa de consulta de informaccedilotildees poreacutem os arquivos

digitais eram ainda uma versatildeo melhorada dos arquivos fiacutesicos

Mas as entidades precisavam relacionar-se por exemplo um produto eacute fornecido por

um fornecedor e com os arquivos digitais relacionaacute-las natildeo era uma tarefa muito trivial os

ldquosoftwares simplesrdquo para manipular os arquivos digitais comeccedilaram a ficar ldquocomplexosrdquo para

permitir os relacionamentos entre entidades Entatildeo na deacutecada de 60 a empresa IBM investiu

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1965

19

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

fortemente em pesquisas para solucionar estes problemas dos bancos de dados digitais

primitivos Vaacuterios modelos de bancos de dados surgiram nesta eacutepoca dentre eles os modelos

hieraacuterquicos e rede

Em junho de 1970 o pesquisador Edgar Frank ldquoTedrdquo Codd da IBM mudou a histoacuteria dos

bancos de dados apresentando o modelo relacional no artigo intitulado ldquoA Relational Model of

Data for Large Shared Data Banksrdquo (Um modelo relacional de dados para grandes bancos de

dados compartilhados) onde o autor apresentou uma forma de usuaacuterios sem conhecimento

teacutecnico armazenarem e extraiacuterem grandes quantidades de informaccedilotildees de um banco de dados

Esse artigo foi o grande impulso para a evoluccedilatildeo dos bancos de dados a partir do artigo de ldquoTedrdquo

Codd que os cientistas aprofundaram a ideia de criar o modelo de banco de dados relacional

BANCO DE DADOS RELACIONAL

Apesar de ter sido o marco dos bancos de dados relacionais o artigo de Codd natildeo foimuito explorado no iniacutecio Soacute no final da deacutecada de 70 que foi desenvolvido um sistema baseado

nas ideias do cientista o ldquoSistema Rrdquo Junto com esse sistema foi criado a linguagem de consulta

estruturada (SQL ndash Structured Query Language) que se tornou a linguagem padratildeo para bancos

de dados relacionais Embora tenha contribuiacutedo para a evoluccedilatildeo dos bancos de dados

relacionais o ldquoSystem Rrdquo natildeo foi muito bem sucedido comercialmente mas os sistemas de banco

de dados seguintes foram baseados nele

Nos anos 80 surgiram outros bancos de dados a Oracle apresentou o Oracle 2 e a IBMo SQLDS (que se tornou DB2) ambos sistemas comerciais de bancos de dados Na sequencia

vieram SQL Server MySQL DBase III Paradox etchellip

BANCOS DE DADOS HOJE

Atualmente existem vaacuterios modelos de bancos de dados tais como orientado a objetos

orientado a documentos etc Mas o mais comum ainda eacute o banco de dados relacional A decisatildeo

entre qual modelo de banco de dados utilizarem baseia-se no tipo de dados que vocecirc pretende

armazenar Por exemplo se vocecirc for armazenar uma grande quantidade de dados em um modelo

pequeno (imagine um banco de dados para o twitter) eacute mais indicado utilizar um banco de dados

orientado a documentos a um banco de dados relacional Muitas questotildees envolvem essa

decisatildeo mas natildeo eacute uma questatildeo de superioridade entre uma ou outra tecnologia todas tecircm proacutes

e contras e satildeo mais indicadas ou natildeo para cada problema

Para fixar

Faccedila um breve resumo sobre o surgimos dos bancos de dados

______________________________________________________________________________

______________________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2065

20

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

Dados amp Informaccedilatildeo

A informaccedilatildeo eacute encarada atualmente como um dos recursos mais importantes de uma

organizaccedilatildeo contribuindo decisivamente para a sua maior ou menor competitividade De fato

com o aumento da concorrecircncia tornou-se vital melhorar as capacidades de decisatildeo a todos osniacuteveis

Hoje mais que nunca a tomada de decisatildeo nas organizaccedilotildees eacute um processo complexo

dada a qualidade de informaccedilatildeo em jogo a sua complexidade e a frequecircncia com que se altera

No entanto para que possa ser utilizada com um apoio eficaz agrave tomada de decisatildeo a informaccedilatildeo

soacute tecircm valor se verificarem simultaneamente algumas condiccedilotildees

ATUALIDADE ndash O valor da informaccedilatildeo dependeraacute em grande parte da sua atualidade

Dado o dinamismo verificado em todos os setores da sociedade em geral e do ambiente

empresarial em particular o periacuteodo de validade da informaccedilatildeo eacute cada vez mais curto Torna-se

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2165

21

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

necessaacuterio dispor de fontes de informaccedilatildeo que acompanhem continuamente essas modificaccedilotildees

Soacute com base em informaccedilatildeo atualizada se podem tomar decisotildees acertadas

CORRECcedilAtildeO ndash Natildeo basta que a informaccedilatildeo seja atual eacute tambeacutem necessaacuterio que na

medida do possiacutevel seja rigorosa Soacute com informaccedilatildeo correta se pode decidir com confianccedila

RELEVAcircNCIA ndash Dado o grande de volume de informaccedilatildeo envolvida o processo de tomada

de decisatildeo ao contraacuterio de ser facilitado pode ser dificultado pelo excesso de informaccedilatildeo A

informaccedilatildeo deve ser devidamente filtrada de tal forma que apenas aquela com relevacircncia para

cada situaccedilatildeo seja considerada

DISPONIBILIDADE ndash Ainda que a informaccedilatildeo verifique os trecircs requisitos anteriores a sua

utilidades poderaacute ser posta em causa se natildeo puder ser disponibilizada de forma imediata no

momento em que eacute solicitada As decisotildees muito ponderadas com o longo periacuteodo de gestaccedilatildeo

satildeo cada vez mais situaccedilotildees do passado Hoje dadas as caracteriacutesticas do meio envolvente oprocesso de tomada de decisatildeo tem que ser quase instantacircneo Para isso a informaccedilatildeo tem que

ser disponibilizada rapidamente caso contraacuterio deixa de ser uacutetil

LEGIBILIDADE - Esta condiccedilatildeo apesar de apresentada em uacuteltimo lugar natildeo eacute por isso

menos importante A informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada

De fato de nada vale que a informaccedilatildeo seja atual precisa relevante e disponibilizada em

tempo oportuno se natildeo puder ser entendida A forma como eacute disponibilizada tem tambeacutem grande

importacircncia informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada A forma como eacutedisponibilizada tem tambeacutem grande importacircncia

Quanto aos requisitos de atualidade e correccedilatildeo da informaccedilatildeo para que esta possa ser

correta e atual os dados de onde eacute derivada tecircm forccedilosamente que ser precisos e atualizados

Quanto aos requisitos de relevacircncia disponibilidade e legibilidade da informaccedilatildeo estes tecircm mais

a ver com os meios utilizados para o processamento dos dados

Como eacute que a informaccedilatildeo eacute organizada

A organizaccedilatildeo da informaccedilatildeo eacute efetuada de acordo com criteacuterios distintos como

Hierarquia dos seus componentes

O tipo de assunto a que se refere

Forma de armazenamento

Quanto agrave HIERARQUIA DOS COMPONENTES DA INFORMACcedilAtildeO esta eacute organizada em

Caracteres Campos Registros Ficheiros Caracteres - podem ser numeacutericos alfabeacuteticos ou

sinais de pontuaccedilatildeo Campos - satildeo conjuntos de caracteres que identificam um componente de

um registo Registos - satildeo agrupamentos de campos descritivos de uma realidade Ficheiros - satildeo

conjuntos de registos cuja informaccedilatildeo eacute estruturalmente analoacutegica

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2265

22

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Quanto AO TIPO DE ASSUNTO a que se refere agrave informaccedilatildeo

Esta pode ser como que etiquetada de modo a tornar faacutecil a sua procura e a evitar perdas

de tempo

Quando a informaccedilatildeo estaacute armazenada em ficheiros estes indicam o seu tipo atraveacutes de

uma extensatildeo ao nome do ficheiro

Algumas das extensotildees mais comuns satildeo

- COM ficheiro de comandos - BACK backup ou coacutepias de seguranccedila- EXE executaacuteveis - SYS ficheiros de sistema

- BAT processamento batch - XLS folha de caacutelculo provenientes do Excel

- TXT texto no formato ASCII - PPT apresentaccedilotildees provenientes do PowerPoint

- PAS programas em Linguagem Pascal - MBD base de dados provenientes do Access

- C programas em Linguagem C - DOC documentos provenientes de um processador de

texto

Quanto Agrave FORMA DE ARMAZENAMENTO da informaccedilatildeoRelativamente ao armazenamento por exemplo no disco riacutegido do computador a

informaccedilatildeo eacute organizada em diretorias cujo nome revela o tipo de ficheiros que aiacute se encontram

podendo cada diretorias conter diversas subdiretorias

Organizaccedilatildeo dos dados num Computador

Os dados que fornecemos a um computador para processar podem ser de trecircs tipos

quantitativos classificativos referenciais

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2365

23

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Dados quantitativos - satildeo os que exprimem quantidades e por isso normalmente servem

de base para caacutelculos aritmeacuteticos Exemplo a ficha escolar as notas do periacuteodo as faltas o total

das faltas

bull Dados classificativos - satildeo os que descrevem ou especificam os elementos envolvidos e

quantificados Normalmente servem de complemento aos dados quantitativos identificando

pessoas objetos situaccedilotildees etc Natildeo servem portanto para elementos de caacutelculo Exemplo a

ficha escolar o nome do aluno o nome da disciplina o nome do professor

bull Dados referenciais - satildeo dados que permitem controlar e referenciar os elementos

tratados Exemplo a ficha escolar o ano letivo o nuacutemero do aluno a turma

Para fixar

Escreva de forma resumida como podemos organizar os dados

_________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

Tipos de Operaccedilotildees realizadas sobre os dados

O tipo de operaccedilotildees efetuadas depende dos objetivos do processamento e igualmente dostipos de dados nele envolvidos pois o computador pode processar dados numeacutericos ou natildeo

numeacutericos Assim temos como operaccedilotildees possiacuteveis num processamento

bull Operaccedilotildees aritmeacuteticas - satildeo efetuadas apenas sobre dados numeacutericos e satildeo

basicamente constituiacutedas por somas subtraccedilotildees multiplicaccedilotildees divisotildees e outras similares

bull Operaccedilotildees loacutegicas - satildeo efetuadas sobre dados numeacutericos ou natildeo numeacutericos Estas

operaccedilotildees satildeo tambeacutem por vezes designadas por operaccedilotildees de comparaccedilatildeo

bull Operaccedilotildees de movimentaccedilatildeo interna - satildeo efetuadas sobre qualquer tipo de dados e

consistem na coacutepia e mudanccedila de localizaccedilatildeo interna dos dados na memoacuteria do computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2465

24

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Operaccedilatildeo de InputOutput - satildeo as operaccedilotildees que envolvem os oacutergatildeos de entrada e

saiacuteda permitindo a comunicaccedilatildeo entre o operador e a maacutequina

Funccedilotildees do processamento de dados

Considera-se como processamento de dados o conjunto de todas as operaccedilotildees efetuadas desde

a entrada dos dados ateacute agrave saiacuteda da informaccedilatildeo Todas estas operaccedilotildees de vaacuterios tipos satildeo

normalmente associadas a seis funccedilotildees do processamento de dados input ordenaccedilatildeo

processamento armazenamento output e controle

bull Input - fase de seleccedilatildeo e aquisiccedilatildeo dos dados pelo computador

bull Ordenaccedilatildeo - esta eacute uma funccedilatildeo auxiliar O seu objetivo eacute dispor os dados de uma forma

organizada (ordenada) de modo a facilitar o seu tratamento Se os dados se mantiverem

ordenados segundo um determinado criteacuterio preacute-definido a sua pesquisa eacute mais faacutecil o que faz

aumentar a velocidade do processamento

bull Processamento - considera-se processamento ao conjunto de todas as operaccedilotildees

efetuadas internamente pelo computador na manipulaccedilatildeo dos dados

bull Armazenamento - esta eacute uma funccedilatildeo muito importante que permite posteriormente

analisar as etapas e os resultados do processamento

bull Output - eacute a obtenccedilatildeo de resultados sob a forma de informaccedilatildeo significativa para as

pessoas a quem se destina

bull Controle - a sua finalidade eacute detectar corrigir e eliminar possiacuteveis erros ou afastamentosem relaccedilatildeo aos objetivos inicialmente traccedilados

Utilidade de um banco de dados

Um banco de dados permite pocircr dados agrave disposiccedilatildeo de usuaacuterios para uma consulta uma

introduccedilatildeo ou uma atualizaccedilatildeo assegurando-se dos direitos atribuiacutedos a estes uacuteltimos Isso eacute

ainda mais uacutetil quando os dados informaacuteticos satildeo cada vez mais numerosos

Um banco de dados pode ser local quer dizer utilizaacutevel em uma maacutequina por um usuaacuterio

ou repartida quer dizer que as informaccedilotildees satildeo armazenadas em maacutequinas distantes eacessiacuteveis por rede A vantagem essencial da utilizaccedilatildeo dos bancos de dados eacute a possibilidade

de poder ser acessada por vaacuterios usuaacuterios simultaneamente

A gestatildeo dos bancos de dados

A fim de poder controlar os dados bem como os usuaacuterios a necessidade de um sistema de

gestatildeo fez-se sentir rapidamente A gestatildeo do banco de dados faz-se graccedilas a um sistema

chamado SGBD (sistema de gestatildeo de bancos de dados) ou em inglecircs DBMS (Database

managment system) O SGBD eacute um conjunto de serviccedilos (aplicaccedilotildees software) que permitem

gerenciar os bancos de dados quer dizer

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2565

25

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Permitir o acesso aos dados de maneira simples

Autorizar um acesso agraves informaccedilotildees a muacuteltiplos usuaacuterios

Manipular os dados presentes no banco de dados (inserccedilatildeo supressatildeo modificaccedilatildeo)

O SGBD pode decompor-se em trecircs subsistemas

O sistema de gestatildeo de arquivos permite o armazenamento das informaccedilotildees num suporte

fiacutesico

O SGBD interno gerencia a emissatildeo das informaccedilotildees

O SGBD externo representa a interface com o usuaacuterio

Bancos de dados satildeo conjuntos de dados com uma estrutura regular que organizam

informaccedilatildeo Um banco de dados normalmente agrupa informaccedilotildees utilizadas para um mesmo fim

O modelo de dados mais adotado hoje em dia eacute o modelo relacional onde as estruturas

tecircm a forma de tabelas compostas por linhas e colunas

Resumindo um banco de dados eacute uma coleccedilatildeo de dados relacionados Entende-se por

dado toda a informaccedilatildeo que pode ser armazenada e que apresenta algum significado impliacutecito

dentro do contexto ao qual ele se aplica Por exemplo num sistema bancaacuterio uma pessoa eacuteidentificada pelo seu cpf(cliente) Em um sistema escolar a pessoa eacute identificada pelo seu nuacutemero

de matriacutecula(aluno) Aleacutem disso os dados que seratildeo armazenados em cada situaccedilatildeo podem

diferir consideravelmente

Atividades

1) Onde utilizar um banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2665

26

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2) Como funciona um sistema gerenciador de banco de dados

3) Como funciona o modelo relacional

Modelo Relacional

O modelo relacional eacute uma teoria matemaacutetica desenvolvida por Edgar Frank Codd para

descrever como as bases de dados devem funcionar Embora esta teoria seja a base para o

software de bases de dados relacionais muito poucos sistemas de gestatildeo de bases de dados

seguem o modelo de forma restrita e todos tecircm funcionalidades que violam a teoria desta forma

variando a complexidade e o poder A discussatildeo se esses bancos de dados merecem ser

chamados de relacional ficou esgotada com tempo com a evoluccedilatildeo dos bancos existentes

De acordo com a arquitetura ANSI SPARC em trecircs niacuteveis os Bancos de dados

relacionais consistem de trecircs componentes

bull uma coleccedilatildeo de estruturas de dados formalmente chamadas de relaccedilotildees ou

informalmente tabelas compondo o niacutevel conceitual

bull uma coleccedilatildeo dos operadores a aacutelgebra e o caacutelculo relacionais que constituem a base da

linguagem SQL

bull uma coleccedilatildeo de restriccedilotildees da integridade definindo o conjunto consistente de estados de

base de dados e de alteraccedilotildees de estados As restriccedilotildees de integridade podem ser de quatro

tipos

bull domiacutenio (ou tipo de dados) bull atributo

bull restriccedilotildees de base de dados

De acordo com o Princiacutepio de Informaccedilatildeo toda informaccedilatildeo tem de ser representada como dados

qualquer tipo de atributo representa relaccedilotildees entre conjuntos de dados

Nos bancos de dados relacionais os relacionamentos entre as tabelas natildeo satildeo codificados

explicitamente na sua definiccedilatildeo Em vez disso se fazem implicitamente pela presenccedila de

atributos chave As bases de dados relacionais permitem aos utilizadores (incluindo

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2765

27

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

programadores) escreverem consultas (queries) reorganizando e utilizando os dados de forma

flexiacutevel e natildeo necessariamente antecipada pelos projetistas originais

Esta flexibilidade eacute especialmente importante em bases de dados que podem ser utilizadas

durante deacutecadas tornando as bases de dados relacionais muito populares no meio comercial

Um dos pontos fortes do modelo relacional de banco de dados eacute a possibilidade de

definiccedilatildeo de um conjunto de restriccedilotildees de integridade Estas definem os conjuntos de estados e

mudanccedilas de estado consistentes do banco de dados determinando os valores que podem e os

que natildeo podem ser armazenados

Aplicaccedilotildees de bancos de dados

Bancos de dados satildeo usados em muitas aplicaccedilotildees enquanto atravessando virtualmente a

gama inteira de software de computador Bancos de dados eacute o meacutetodo preferido de

armazenamento para aplicaccedilotildees multiusuaacuterias grandes onde a coordenaccedilatildeo entre muitosusuaacuterios eacute necessaacuteria Ateacute mesmo usuaacuterios individuais os acham convenientes entretanto e

muitos programas de correio eletrocircnico e os organizadores pessoais estatildeo baseados em

tecnologia de banco de dados standard

Aplicativo de Banco de Dados

Um aplicativo de banco de dados eacute um tipo de software exclusivo para gerenciar um banco

de dados Aplicativos de banco de dados abrangem uma vasta variedade de necessidades e

objetivos de pequenas ferramentas como uma agenda ateacute complexos sistemas empresariaispara desempenhar tarefas como a contabilidade

O termo Aplicativo de Banco de dados usualmente se refere a softwares que oferecem

uma interface para o banco de dados Exemplos de aplicativos de banco de dados satildeo Microsoft

Visual FoxPro Microsoft Access dBASE FileMaker (em certa medida) HyperCard MySQL

PostgreSQL Microsoft SQL Server e Oracle

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2865

28

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Capiacutetulo 3 - HARDWARE E SOFTWARE

O QUE Eacute O HARDWARE

No acircmbito da informaacutetica eacute dada a designaccedilatildeo de hardware a todos os componentes

fiacutesicos que fazem parte de um sistema informaacutetico incluiacutedo toda a parte fiacutesica de um computador

(nomeadamente os processadores motherbord disco riacutegido placas de som placas de viacutedeo

memoacuterias etc) e todos os perifeacutericos (tais como teclados mouse monitores impressoras

scanners modems entre outros)

Peccedilas de um computador

Se vocecirc usa um computador desktop jaacute deve saber que natildeo existe uma parte uacutenica

chamada computador Um computador eacute na verdade um sistema de muitas partes funcionando

em conjunto As partes fiacutesicas que vocecirc pode ver e tocar satildeo denominadas

coletivamente hardware (O software por outro lado se refere agraves instruccedilotildees ou programas que

dizem ao hardware o que fazer)

A ilustraccedilatildeo a seguir mostra os dispositivos de hardware mais comuns em um sistema de

computador desktop Seu sistema pode ter uma aparecircncia um pouco diferente mas

provavelmente possui a maioria destas peccedilas Um computador laptop possui peccedilas semelhantes

mas as combina em um uacutenico pacote do tamanho de um caderno

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2965

29

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Sistema de computador desktop

Unidade de sistema

A unidade de sistema (Gabinete) eacute o nuacutecleo de um sistema de computador Normalmente

eacute uma caixa retangular colocada sobre a mesa ou embaixo dela Dentro dessa caixa estatildeo os

componentes eletrocircnicos que processam as informaccedilotildees O mais importante desses

componentes eacute a CPU (unidade de processamento central) ou microprocessador que atua como

o ceacuterebro do computador Outro componente eacute a memoacuteria RAM que armazena

temporariamente informaccedilotildees utilizadas pela CPU enquanto o computador estaacute ligado As

informaccedilotildees gravadas na RAM satildeo apagadas quando o computador eacute desligado

Quase todas as outras partes do computador se conectam agrave unidade de sistema por meio

de cabos Os cabos satildeo conectados aportas (aberturas) especiacuteficas geralmente na parte traseira

da unidade de sistema O hardware que natildeo faz parte da unidade de sistema eacute

chamado dispositivo perifeacuterico ou simplesmente dispositivo

Unidade de sistema

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3065

30

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Armazenamento

O computador possui uma ou mais unidades de disco ou seja dispositivos que armazenam

informaccedilotildees em um disco de plaacutestico ou de metal O disco preserva as informaccedilotildees mesmo

quando o computador estaacute desligado

Unidade de disco riacutegido

A unidade de disco riacutegido do computador armazena informaccedilotildees em um disco riacutegido que eacute um

prato riacutegido ou pilha de pratos com uma superfiacutecie magneacutetica Como os discos riacutegidos podem

reter uma grande quantidade de informaccedilotildees normalmente eles funcionam como principal meio

de armazenamento do computador guardando praticamente todos os programas e arquivos Em

geral a unidade de disco riacutegido fica localizada dentro da unidade de sistema

Unidade de disco riacutegidoUnidades de CD e DVD

Hoje em dia quase todos os computadores vecircm equipados com uma unidade de CD ou DVD

geralmente localizada na frente da unidade de sistema As unidades de CD usam lasers para ler

(recuperar) dados de um CD Muitas delas tambeacutem podem gravar dados em CDs Se vocecirc tiver

uma unidade de disco gravaacutevel poderaacute armazenar coacutepias de seus arquivos em CDs vazios A

unidade de CD tambeacutem serve para tocar CDs de muacutesica no computador

CD

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3165

31

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

As unidades de DVD fazem o mesmo que as unidades de CD e tambeacutem lecircem DVDs Se vocecirc

tiver uma unidade de DVD poderaacute ver filmes no computador Muitas unidades de DVD podem

gravar dados em DVDs vazios

Dica

Se vocecirc tiver uma unidade de CD ou DVD gravaacutevel faccedila backup (copie) periodicamente de seus

arquivos importantes em CDs ou DVDs Dessa forma caso venha a ocorrer alguma falha no disco

riacutegido vocecirc natildeo perderaacute os dados

Unidade de disquete

As unidades de disquete armazenam informaccedilotildees em discos tambeacutem chamados discos

flexiacuteveis ou disquetes Comparado a CDs e DVDs os disquetes podem armazenar apenas uma

pequena quantidade de dados Eles tambeacutem recuperam informaccedilotildees de forma mais lenta e satildeo

mais vulneraacuteveis a danos Por esses motivos as unidades de disquete satildeo cada vez menosusadas embora ainda sejam incluiacutedas em alguns computadores

Disquete

Por que estes discos satildeo chamados de disquetes Apesar de a parte externa ser composta de

plaacutestico riacutegido isso eacute apenas a capa O interior do disco eacute feito de um material de vinil fino e

flexiacutevel

Mouse

Mouse eacute um pequeno dispositivo usado para apontar e selecionar itens na tela do computador

Embora existam mouses de vaacuterias formas o modelo mais comum se assemelha a um rato (como

diz o nome em inglecircs) Ele eacute pequeno e alongado sendo conectado agrave unidade de sistema por um

cabo comprido que faz lembrar uma cauda Alguns mouses mais novos satildeo sem fio

Mouse

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3265

32

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O mouse geralmente possui dois bototildees um botatildeo principal (normalmente o da esquerda) e um

botatildeo secundaacuterio Muitos mouses tambeacutem tecircm uma roda entre os dois bototildees que permite

percorrer as telas de informaccedilotildees

Ponteiros do mouse

Agrave medida que vocecirc move o mouse com a matildeo um ponteiro na tela se move na mesma direccedilatildeo

(A aparecircncia do ponteiro pode mudar dependendo da sua posiccedilatildeo na tela) Quando quiser

selecionar um item aponte para ele e clique no botatildeo principal ou seja pressione-o e solte-o

Apontar e clicar com o mouse eacute a principal maneira de interagir com o computador Para mais

informaccedilotildees consulte Usando o mouse

Teclado

A finalidade principal do teclado eacute digitar texto no computador Ele possui teclas para letras e

nuacutemeros exatamente como em uma maacutequina de escrever A diferenccedila estaacute nas teclas especiais

As teclas de funccedilatildeo localizadas na linha superior executam funccedilotildees diferentes dependendo

de onde satildeo usadas

O teclado numeacuterico localizado agrave direita na maioria dos teclados permite inserir nuacutemeros

rapidamente

As teclas de navegaccedilatildeo como as teclas de seta permitem mover sua posiccedilatildeo dentro de

documentos ou paacuteginas da Web

Teclado

Vocecirc tambeacutem pode usar o teclado para executar muitas das mesmas tarefas que executa com

um mouse Para mais informaccedilotildees consulte Usando o teclado

Monitor

O monitor exibe informaccedilotildees em forma visual usando texto e elementos graacuteficos A parte do

monitor que exibe as informaccedilotildees eacute chamada tela Como a tela de uma televisatildeo a tela de um

computador pode mostrar imagens paradas ou em movimento

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3365

33

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Existem dois tipos baacutesicos de monitores CRT (tubo de raios catoacutedicos) e LCD (viacutedeo de cristal

liacutequido) Ambos produzem imagens niacutetidas mas os monitores LCD levam vantagem por serem

mais finos e mais leves

Monitor LCD (agrave esquerda) monitor CRT (agrave direita)

Impressora

Uma impressora transfere dados de um computador para o papel Vocecirc natildeo precisa de

impressora para usar o computador mas se tiver uma poderaacute imprimir emails cartotildees convites

anuacutencios e outros materiais Muitas pessoas tambeacutem preferem imprimir suas fotos em casa

Os dois principais tipos de impressora satildeo a jato de tinta e a laser As impressoras a jato de tinta

satildeo as mais populares para uso domeacutestico Elas podem imprimir em preto e branco ou em cores

e produzem fotos de alta qualidade quando usadas com papel especial As impressoras a laser

satildeo mais raacutepidas e mais adequadas para uso intenso

Impressora a jato de tinta (agrave esquerda) impressora a laser (agrave direita)

Alto-falantes

Os alto-falantes satildeo usados para tocar som Eles podem vir embutidos na unidade de sistema ou

ser conectados com cabos Satildeo eles que permitem ouvir muacutesica e efeitos de som no computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3465

34

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Alto-falantes do computador

Modem

Para conectar o computador agrave Internet vocecirc precisa de um modem um dispositivo que envia e

recebe informaccedilotildees do computador por linha telefocircnica ou cabo de alta velocidade Agraves vezes os

modems vecircm embutidos na unidade de sistema mas os de alta velocidade normalmente satildeo

componentes separados

Modem a cabo

O QUE Eacute O SOFTWARE

O Software eacute uma aplicaccedilatildeo ou programa do computador escrita numa determinadalinguagem interpretaacutevel por uma determinada maacutequina (o processador de um computador ou

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3565

35

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

outro equipamento) e que permite executar determinadas tarefas para as quais o software foi

projetado Estes programas satildeo compostos por uma sequecircncia de instruccedilotildees (os comandos) e de

declaraccedilotildees de dados as quais satildeo armazenaacuteveis num meio digital

Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por um

computador com o objetivo de executar tarefas especiacuteficas Tambeacutem pode ser definido como

os programas que comandam o funcionamento de um computador

Em um computador o software eacute classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer

instruccedilotildees para o hardware O hardware eacute toda a parte fiacutesica que constitui o computador por

exemplo a CPU a memoacuteria e os dispositivos de entrada e saiacuteda O software eacute constituiacutedo por

todos os programas que existem para um referido sistema quer sejam produzidos pelo proacuteprio

utente ou pelo fabricante do computador

O termo inglecircs software foi usado pela primeira vez em 1958 em um artigo escrito pelo cientistaamericano John Wilder Tukey Foi tambeacutem ele o responsaacutevel por introduzir o termo bit para

designar diacutegito binaacuterio

Os softwares podem ser classificados como

SOFTWARE DE SISTEMA

Geralmente dividido em SISTEMAS OPERACIONAIS e PROGRAMAS UTILITAacuteRIOS Para

comeccedilar os Sist Operacionais satildeo de grande importacircncia pois eles nos datildeo a opccedilatildeo de dizer ao

computador o que ele deve fazer Dois exemplos bastante conhecidos do nosso puacuteblico satildeoo Mac o Windows e o Linux Os Programas utilitaacuterios geralmente satildeo softwares de menor porte

com funccedilotildees mais especificas tipo Verificaccedilatildeo de Disco Coacutepias de Seguranccedila entre outros

SOFTWARE APLICATIVO

Neste tipo de software se enquadram todos aqueles programas que satildeo utilizados na execuccedilatildeo

de tarefas especiacuteficas Posso citar vaacuterios exemplos mas os mais comuns satildeo os processadores

de texto como o Word que servem para trabalhar com os mais diversos tipos de textos emitir

etiquetas e fazer formulaacuterios as planilhas eletrocircnicas como o Excel satildeo poderosas ferramentas

de caacutelculos que facilitam tanto aquele trabalho aacuterduo de matemaacutetica fazer graacuteficos com real

representaccedilatildeo dos dados eacute uma coisa muito boa pra quem precisa e por uacuteltimo o que muitos

usam mas natildeo sabem o nome ao certo que satildeo os Browsers ou Navegadores softwares usados

para navegar na Web dentre eles os mais conhecidos atualmente satildeo Windows Internet

Explorer Firefox Google Chrome Opera e Safaacuteri

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3665

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3765

37

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

hoje eles satildeo bastante usados em situaccedilotildees de treinamentos de pessoas para enfrentar casos no

seu dia-a-dia

SOFTWARE DE JOGOS

Geralmente satildeo softwares relacionados a entretenimento para proporcionar lazer e diversatildeo

Dispotildeem de muitos recursos interativos e existem de todos os tipos desde estrateacutegias ateacute

simulaccedilotildees reais de muitas coisas como corridas (Need for Speed) ateacute mesmo de vida como o

Second Life

SOFTWARES ABERTOS

Satildeo aqueles que permitem que o usuaacuterio produza com liberdade e criatividade se classificam

nessa categoria aqueles softwares de apresentaccedilotildees bancos de dados e vaacuterios outros

Para fixar

Descreva uma definiccedilatildeo para os tipos de softwares

Software de Sistema_____________________________________________________________

Software Aplicativo ______________________________________________________________

Software de Linguagem __________________________________________________________

Software abertos _______________________________________________________________

Capiacutetulo 4 - Conceitos Baacutesicos de Banco de Dados

Segundo Korth um banco de dados ldquoeacute uma coleccedilatildeo de dados inter -relacionados

representando informaccedilotildees sobre um domiacutenio especiacuteficordquo ou seja sempre que for possiacutevel

agrupar informaccedilotildees que se relacionam e tratam de um mesmo assunto posso dizer que tenho

um banco de dados

Podemos exemplificar situaccedilotildees claacutessicas como uma lista telefocircnica um cataacutelogo de CDs ou um

sistema de controle de RH de uma empresa

Jaacute um sistema de gerenciamento de banco de dados (SGBD) eacute um software que possui

recursos capazes de manipular as informaccedilotildees do banco de dados e interagir com o usuaacuterio

Exemplos de SGBDs satildeo Oracle SQL Server DB2 PostgreSQL MySQL o proacuteprio Access ouParadox entre outros

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3865

38

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Por uacuteltimo temos que conceituar um sistema de banco de dados como o conjunto de quatro

componentes baacutesicos dados hardware software e usuaacuterios Date conceituou que ldquosistema de

bancos de dados pode ser considerado como uma sala de arquivos eletrocircnicardquo A Figura 1 ilustra

os componentes de um sistema de banco de dados

Componentes de um sistema de banco de dados

Os objetivos de um sistema de banco de dados satildeo o de isolar o usuaacuterio dos detalhes

internos do banco de dados (promover a abstraccedilatildeo de dados) e promover a independecircncia dos

dados em relaccedilatildeo agraves aplicaccedilotildees ou seja tornar independente da aplicaccedilatildeo a estrateacutegia de

acesso e a forma de armazenamento

Abstraccedilatildeo de dados

O sistema de banco de dados deve garantir uma visatildeo totalmente abstrata do banco de

dados para o usuaacuterio ou seja para o usuaacuterio do banco de dados pouco importa qual unidade de

armazenamento estaacute sendo usada para guardar seus dados contanto que os mesmos estejam

disponiacuteveis no momento necessaacuterio

Esta abstraccedilatildeo se daacute em trecircs niacuteveis (Figura 2) Niacutevel de visatildeo do usuaacuterio as partes do banco de dados que o usuaacuterio tem acesso de

acordo com a necessidade individual de cada usuaacuterio ou grupo de usuaacuterios

Niacutevel conceitual define quais os dados que estatildeo armazenados e qual o relacionamento

entre eles

Niacutevel fiacutesico eacute o niacutevel mais baixo de abstraccedilatildeo em que define efetivamente de que maneira

os dados estatildeo armazenados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3965

39

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 2 Niacuteveis de abstraccedilatildeo

Projeto de banco de dados

Todo bom sistema de banco de dados deve apresentar um projeto que visa a organizaccedilatildeo das

informaccedilotildees e utilizaccedilatildeo de teacutecnicas para que o futuro sistema obtenha boa performance e

tambeacutem facilite infinitamente as manutenccedilotildees que venham a acontecer

O projeto de banco de dados se daacute em duas fases

Modelagem conceitual Projeto loacutegico

Estas duas etapas se referem a um sistema de banco de dados ainda natildeo implementado ou seja

que ainda natildeo exista um novo projeto Para os casos em que o banco de dados jaacute exista mas eacute

um sistema legado por exemplo ou um sistema muito antigo sem documentaccedilatildeo o processo de

projeto de banco de dados se daraacute atraveacutes da utilizaccedilatildeo de uma teacutecnica chamada de Engenharia

Reversa que seraacute visto em outra oportunidade

Modelo conceitual

Eacute a descriccedilatildeo do BD de maneira independente ao SGBD ou seja define quais os dados

que apareceratildeo no BD mas sem se importar com a implementaccedilatildeo que se daraacute ao BD Desta

forma haacute uma abstraccedilatildeo em niacutevel de SGBD

Uma das teacutecnicas mais utilizadas dentre os profissionais da aacuterea eacute a abordagem entidade-

relacionamento (ER) onde o modelo eacute representado graficamente atraveacutes do diagrama entidade-

relacionamento (DER) (Figura 3)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 2: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 365

3

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

dependendo do contexto a tecnologia pode ser tudo pra nossa vida melhorar A tecnologia eacute de

uma forma geral o encontro entre a ciecircncia e a engenharia

Computador maacutequina composta de um conjunto de partes eletrocircnicas e eletromecacircnicas capaz

de receber armazenar tratar e produzir informaccedilotildees de forma automaacutetica com grande rapidez e

precisatildeo Eacute um instrumento para agilizar o tratamento da informaccedilatildeo

A tecnologia de computadores fez um progresso incriacutevel nos aproximadamente 55 anos

desde que foi criado o primeiro computador Preccedilos caiacuteram a velocidade de processamento

aumentou e armazenar grandes massas de dados a baixo custo jaacute eacute realidade

Durante a deacutecada de 70 o desempenho dos computadores melhorou cerca de 25 a 30 ao

ano

Com a utilizaccedilatildeo de circuitos integrados nos microcomputadores levou a uma maior otimizaccedilatildeo

(35 ao ano de desempenho)Houve uma queda no desenvolvimento de sistemas utilizando linguagem Assembly

(linguagem de maacutequina) e aumento da utilizaccedilatildeo de sistemas baacutesicos padronizados (Unix Linux)

e automaticamente novas arquiteturas foram se consagrando comercialmente Ao longo do

tempo portanto a tecnologia e os estilos usados na construccedilatildeo de computadores apresentam

pontos comuns e permitem uma classificaccedilatildeo dos computadores em geraccedilotildees

Caracteriacutesticas fundamentais do computador

Anotaccedilotildees

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 465

4

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Vantagens do uso do computador

Para fixar

1 Escreva com suas palavras o que eacute um computador e o que eacute informaacutetica

2 Quais satildeo as vantagens de se utilizar um computador na vida profissional

3 Como vocecirc escolheria o melhor computador para atender agraves suas necessidades

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 565

5

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

A PRIMEIRA GERACcedilAtildeO (1940 ndash 1950)

O primeiro computador eletrocircnico digital foi resultado dos trabalhos de um professor de Fiacutesica da

Universidade de Iowa EUA John Vincent Atanasoff que na busca de um meio para resolver

equaccedilotildees lineares teve a ideia de combinar simultaneamente um circuito eletrocircnico com uma

memoacuteria de varredura mecacircnica usando capacitores Em sua concepccedilatildeo baacutesica o dispositivo

consistia de uma memoacuteria composta de cilindros rotativos

Provido com contatos eleacutetricos na forma de pequenos pinos de latatildeo interligados com

capacitores de papel cuja variaccedilatildeo de carga durante a operaccedilatildeo era monitorado e ajustado por

um circuito eleacutetrico Por sua vez a loacutegica do sistema era feito com 255 vaacutelvulas tipo duplo triacuteodoNo iniacutecio da segunda guerra mundial os computadores eletromecacircnicos disponiacuteveis como

o ldquoASCCrdquo - Automatic Sequence Controlled Calculator - desenvolvido pela IBM EUA jaacute natildeo eram

tatildeo raacutepidos para resolver os complicados caacutelculos baliacutesticos exigidos pelos armamentos usados

no novo tipo de guerra aeacuterea de forma que o aparelho de Atanasoff por ter uma concepccedilatildeo

diferente natildeo mais usando de multivibradores biestaacuteveis ou flip-flop poreacutem de um conceito

eletrocircnico foi agrave origem do emprego da vaacutelvula na incipiente ciecircncia da computaccedilatildeo Assim em 5

de junho de 1943 o governo americano assina um contrato com a universidade da Pensilvacircniapara desenvolver o projeto do ldquoENIACrdquo ou - Electronic Numerical Integrator and Computer

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 665

6

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ENIAC ndash PRIMEIRO COMPUTADOR

Computador integrado numeacuterico eletrocircnico foi o primeiro computador digital eletrocircnico de grandeescala O ENIAC comeccedilou a ser desenvolvido em 1946 durante a II Guerra Mundial para

computar trajetoacuterias taacuteticas que exigissem conhecimento substancial em matemaacutetica mas soacute se

tornou operacional apoacutes o final da guerra

Sua capacidade de processamento era de 5000 operaccedilotildees por segundo

Criado na segunda guerra tinha como principal finalidade caacutelculos baliacutesticos

Possuiacutea 18000 vaacutelvulas termiocircnicas de 160 kW de potecircncia

Pesava 30 Toneladas Esta maacutequina natildeo tinha sistema operacional e seu funcionamento era parecido com

uma calculadora simples de hoje O ENIAC assim como uma calculadora tinha de ser

operado manualmente

A calculadora efetua os caacutelculos a partir das teclas pressionadas fazendo interaccedilatildeo direta com o

hardware no qual era preciso conectar fios relecircs e sequecircncias de chaves para que se

determinasse a tarefa a ser executada A cada tarefa diferente o processo deveria ser refeito A

resposta era dada por uma sequecircncia de lacircmpadas A uacutenica forma de armazenar dados era

atraveacutes de cartotildees perfurados

SEGUNDA GERACcedilAtildeO DOS COMPUTADORES - (1952 - 1964)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 765

7

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Esta Geraccedilatildeo foi originada pela revoluccedilatildeo dos Transistores os quais substituiacuteram as volumosas

vaacutelvulas Houve uma enorme diminuiccedilatildeo em cabos e fios tendo em vista que cada transistor

substituiacutea dezenas de vaacutelvulas Desta maneira os computadores tornaram-se consideravelmente

menores e devido a isso muito mais velozes O computador comeccedila a ser utilizado nas grandes

empresas Projetos foram implementados baseados na utilizaccedilatildeo de transistores houve grandes

avanccedilos no que se refere agraves unidades de memoacuteria principal com a substituiccedilatildeo do sistema de

tubos de raios catoacutedicos pelo de nuacutecleos magneacuteticos (usados ateacute hoje)

A memoacuteria teve um aumento em sua capacidade de armazenamento chegando a 32K

Principais computadores IBM 1401 IBM 7094 Honeywell 800 e IBM 7090

Tanto a vaacutelvula quanto o transistor realizavam um processamento de cada vez Com o

desenvolvimento das teacutecnicas de integraccedilatildeo surgiram os Circuitos Integrados onde numa

pequena caacutepsula continha vaacuterias dezenas centenas ou milhares de transistores ocupando umaaacuterea menor que uma unha dando o nome de microprocessador (processador miniatura) A

linguagem de programaccedilatildeo foi simplificada e jaacute se podia programar atraveacutes de mnemocircnicos

(comandos abreviados) Esta linguagem denomina-se ASSEMBLER As operaccedilotildees de caacutelculos

eram realizadas em milioneacutesimos de segundos Realizando 204000 adiccedilotildeessegundos Aleacutem do

surgimento dos nuacutecleos de ferrite fitas e tambores magneacuteticos passam a ser usados como

memoacuteria

Eacute possiacutevel dividir os computadores desta geraccedilatildeo em duas grandes categoriassupercomputadores e minicomputadores

IBM 7030 tambeacutem conhecido por Strech foi o primeiro supercomputador lanccedilado na

segunda geraccedilatildeo desenvolvido pela IBM Seu tamanho era bem reduzido comparado com

maacutequinas como o ENIAC podendo ocupar somente uma sala comum Ele era utilizado por

grandes companhias custando em torno de 13 milhotildees de doacutelares na eacutepoca Esta maacutequina

executava caacutelculos na casa dos microssegundos o que permitia ateacute um milhatildeo de operaccedilotildees por

segundo Desta maneira um novo patamar de velocidade foi atingido Comparado com os da

primeira geraccedilatildeo os supercomputadores como o IBM 7030 eram mais confiaacuteveis

PDP-8 foi um dos mini-computadores mais conhecidos da segunda geraccedilatildeo Basicamente

foi uma versatildeo mais baacutesica do supercomputador sendo mais atrativo do ponto de vista financeiro

(centenas de milhotildees de doacutelares) Eram menores do que os supercomputadores mas mesmo

assim ainda ocupavam um bom espaccedilo no cocircmodo

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 865

8

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

TERCEIRA GERACcedilAtildeO DOS COMPUTADORES - (1964 - 1971)

A 3ordf Geraccedilatildeo surgiu com a utilizaccedilatildeo dos Circuitos Integrados ndash SLT (Solid Logic Technolo-

gy) uma teacutecnica de micro circuitos Nesta geraccedilatildeo os computadores podiam realizar vaacuterios

processamentos simultacircneos As teacutecnicas de integraccedilatildeo evoluiacuteram de SSI (integraccedilatildeo em

pequena escala) para MSI (integraccedilatildeo em meacutedia escala) LSI (integraccedilatildeo em grande escala) e

VLSI (integraccedilatildeo em muito grande escala) Esta classificaccedilatildeo eacute baseada na quantidade de

componentes que o integrado conteacutem A programaccedilatildeo dos computadores desta geraccedilatildeo foi

facilitada pelo aparecimento de linguagens orientadas para o problema especiacutefico As linguagenssatildeo de natureza universal e assemelham-se cada vez mais a linguagem do homem As

operaccedilotildees de caacutelculos eram realizadas em bilioneacutesimos de segundos Realizando 1280000

adiccedilotildeessegundos

Com a terceira geraccedilatildeo dos computadores surgiram tambeacutem os teclados para digitaccedilatildeo de

comandos Monitores tambeacutem permitiam a visualizaccedilatildeo de sistemas operacionais muito

primitivos ainda completamente distantes dos sistemas graacuteficos que conhecemos e utilizamos

atualmente

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 965

9

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Apesar das facilidades trazidas pelos semicondutores os computadores dessa geraccedilatildeo

natildeo foram reduzidos sendo que um dos modelos de mais sucesso (o IBM 360 que vendeu mais

de 30 mil unidades) chegava a pesar mais do que os antecessores Nessa eacutepoca (final da deacutecada

de 1970 e iniacutecio da deacutecada de 1980) os computadores passaram a ser mais acessiacuteveis

Outro grande avanccedilo da terceira geraccedilatildeo foi a adiccedilatildeo da capacidade de upgrade nas

maacutequinas As empresas poderiam comprar computadores com determinadas configuraccedilotildees e

aumentar as suas capacidades de acordo com a necessidade pagando relativamente pouco por

essas facilidades IBM 360

QUARTA GERACcedilAtildeO DOS COMPUTADORES - (1971 - 1980)

A quarta geraccedilatildeo teve iniacutecio em 1971 quando a Intel lanccedilou o primeiro microprocessador

o Intel 4004 muito mais potente que os circuitos SSI e MSI de ateacute entatildeo e soacute terminou em 1981

com o lanccedilamento dos circuitos ULSI (Circuitos de Escala Ultra Grande) Tem como marco inicial

com os computadores pessoais surgimento do microprocessador a reduccedilatildeo no tamanho dos

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1065

10

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

computadores foi muito grande Surgem muitas linguagens de alto niacutevel e nasce agrave teleinformaacutetica

transmissatildeo de dados entre computadores atraveacutes de rede

Continuou-se o desenvolvimento do Circuito Integrado e a busca de se colocar cada vez

mais um maior nuacutemero de componentes em um chip

A Intel comeccedilou suas pesquisas nessa aacuterea em 1969 Os resultados foram vistos quando

em novembro de 1971 buscando atender ao pedido de uma empresa japonesa que precisava de

um circuito integrado especial a Intel elaborou o 4004 criado por Federico Faggin Ted Hoff

e Stanley Mazor primeiro microprocessador comercial

Internet

De 1969 a 1972 foi criada a Arpanet que deu iniacutecio a Internet (teleinformaacutetica) que conhecemos

hoje A rede entrou no ar em dezembro de 1969 no EUA Eles eram interligados atraveacutes de links

de 50 k criados usando linhas telefocircnicas dedicadas adaptadas para o uso de transmissatildeo de

dados

Em 1971 ocorre a transmissatildeo do primeiro e-mail realizada pela Universidade da Califoacuternia para

um computador na Stanford Research Institute com o texto ldquoLOGINrdquo mas chegou apenas LO

A Ethernet surgiu entre 1972 e 1973 dentro do PARC (o laboratoacuterio de desenvolvimento da Xerox

nos Estados Unidos) onde foi feito o primeiro teste de transmissatildeo de dados usando esse

padratildeo

Em 1974 surgiu o TCPIP que acabou se tornando o protocolo definitivo para uso

na ARPANET e mais tarde na Internet

QUINTA GERACcedilAtildeO DOS COMPUTADORES ndash (1980Atualmente)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1165

11

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Desde o iniacutecio da era dos microcomputadores o avanccedilo tem sido constante O computador

que se fabrica hoje dentro de alguns meses jaacute estaacute obsoleto

Atualmente o que vem surgindo satildeo inuacutemeras renovaccedilotildees com o objetivo de evoluir os sistemas

rdquoEmbora os paradigmas possam mudar as pesquisas normalmente evoluem baseadas em

resultados do passado que se constituem em fundamentos de um desenvolvimento posteriorhelliprdquo

Para Fixar

Escreva um breve resumo sobre o processo evolutivo dos computadores

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________ ___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

__________________________________________________________________

SOFTWARES

O QUE Eacute Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por

um computador com o objetivo de executar tarefas especiacuteficas Em um computador o software eacute

classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer instruccedilotildees para o hardware

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1265

12

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Diferentemente do que muitas pessoas imaginam o computador natildeo faz nada sozinho Ele

apenas processa uma seacuterie de informaccedilotildees inseridas pelo usuaacuterio para entatildeo fornecer os

resultados As informaccedilotildees inseridas e os resultados que recebemos precisam estar num formato

que noacutes humanos conseguimos entender Para facilitar essa comunicaccedilatildeo entre homem e

computador foram criados os softwares ou programas de computador Na realidade tudo que

fazemos com um computador eacute pela execuccedilatildeo desses programas

Um sistema operacional eacute um programa que atua como intermediaacuterio entre o usuaacuterio e o

hardware de um computador O propoacutesito de um sistema operacional eacute propiciar um ambiente no

qual o usuaacuterio possa executar outros programas de forma conveniente por esconder detalhes

internos de funcionamento e eficiecircncia por procurar gerenciar de forma justa os recursos do

sistema

Vimos que o sistema operacional interage diretamente com o hardware e com isso eacuteinfluenciado diretamente pela evoluccedilatildeo do mesmo Portanto a evoluccedilatildeo dos sistemas

operacionais estaacute em grande parte relacionada ao desenvolvimento de equipamentos cada vez

mais velozes compactos e de custos baixos e agrave necessidade de aproveitamento e controle

destes recursos

Assim ao falar sobre o histoacuterico dos sistemas operacionais estaremos recordando um

pouco a evoluccedilatildeo do hardware Devemos lembrar que as datas das fases da evoluccedilatildeo satildeo

aproximadasHISTOacuteRIA

Desde os tempos do computador programado por chaves e cabos ateacute o surgimento do

teclado e impressora de caracteres procurou-se ao longo do processo evolutivo do computador

tornar a sua utilizaccedilatildeo mais amigaacutevel precisa raacutepida e eficaz

Primeira geraccedilatildeo (1945-1955)

Vaacutelvulas e Paineacuteis de Programaccedilatildeo - No iniacutecio da Segunda Guerra Mundial surgiram os primeiros

computadores digitais formados por milhares de vaacutelvulas que ocupavam aacutereas enormes sendo

de funcionamento lento e duvidoso O ENIAC foi o primeiro computador digital de propoacutesito geral

Criado para a realizaccedilatildeo de caacutelculos baliacutesticos A programaccedilatildeo era feita em paineacuteis atraveacutes de

fios utilizando linguagem de maacutequina Natildeo existia o conceito de sistema operacional Outros

computadores foram construiacutedos nessa eacutepoca mas eram utilizados apenas em universidades e

oacutergatildeos militares

SEGUNDA GERACcedilAtildeO (1956-1965)

Transistores e Sistemas em Lote (batch)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1365

13

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

A criaccedilatildeo do transistor e das memoacuterias magneacuteticas contribuiu para o enorme avanccedilo dos

computadores da eacutepoca O transistor permitiu o aumento da velocidade e da confiabilidade do

processamento as memoacuterias magneacuteticas permitiram o acesso mais raacutepido aos dados maior

capacidade de armazenamento e computadores menores

Surgiram os primeiros sistemas operacionais para tentar automatizar as tarefas manuais

ateacute entatildeo realizadas e as primeiras linguagens de programaccedilatildeo como Assembly e Fortran Os

programas deixaram de ser feitos diretamente no hardware o que facilitou enormemente o

processo de desenvolvimento de programas Surgiu o processamento em batch em que um lote

(batch) de programas e de dados era submetido ao computador por vez

Terceira geraccedilatildeo (1966-1980)

Circuitos Integrados e Multiprogramaccedilatildeo

Por meio dos circuitos integrados e posteriormente dos microprocessadores foi possiacutevelviabilizar e difundir o uso de sistemas computacionais por empresas devido agrave diminuiccedilatildeo de seus

custos de aquisiccedilatildeo Houve um aumento no poder de processamento e diminuiccedilatildeo no tamanho

dos equipamentos

A evoluccedilatildeo dos processadores de entradasaiacuteda permitiu que enquanto um programa

esperasse por uma operaccedilatildeo de leituragravaccedilatildeo o processador executasse um outro programa

Para tal a memoacuteria foi dividida em particcedilotildees em que um programa esperava sua vez para ser

processado A essa teacutecnica de compartilhamento da memoacuteria principal e processador deu-se onome de multiprogramaccedilatildeo

QUARTA GERACcedilAtildeO (1981-1990)

Computadores Pessoais

Os mini e superminicomputadores se firmaram no mercado e os microcomputadores

ganharam um grande impulso Surgem as estaccedilotildees de trabalho (workstations) que apesar de

monousuaacuterias permitem que se executem diversas tarefas concorrentemente criando o conceito

de multitarefa

No final dos anos 80 os computadores tiveram um grande avanccedilo decorrente de aplicaccedilotildees que

exigiam um enorme volume de caacutelculos Para acelerar o processamento foram adicionados

outros processadores exigindo dos sistemas operacionais novos mecanismos de controle e

sincronismo Com o multiprocessamento foi possiacutevel a execuccedilatildeo de mais de um programa

simultaneamente ou ateacute de um mesmo programa por mais de um processador Foram

introduzidos processadores vetoriais e teacutecnicas de paralelismo de processamento fazendo com

que os computadores se tornassem ainda mais poderosos

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1465

14

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O uso das redes distribuiacutedas se difundiu por todo o mundo permitindo o acesso a outros

sistemas de computaccedilatildeo independentemente de cidade paiacutes e ateacute mesmo fabricante Os

softwares de rede passaram a estar intimamente relacionados com o sistema operacional de cada

maacutequina e surgem os sistemas operacionais de rede

QUINTA GERACcedilAtildeO (1991ATUALMENTE)

Houve grandes avanccedilos em termos de hardware software e telecomunicaccedilotildees como

consequecircncia da evoluccedilatildeo das aplicaccedilotildees que necessitavam cada vez mais de capacidade de

processamento e armazenamento de dados Sistemas especialistas sistemas multimiacutedia bancos

de dados distribuiacutedos inteligecircncia artificial e redes neurais satildeo apenas alguns exemplos da

necessidade cada vez maior de informaccedilatildeo e de capacidade de processamento O conceito de

processamento distribuiacutedo eacute explorado nos sistemas operacionais de forma que suas funccedilotildees

estejam espalhadas por vaacuterios processadores atraveacutes de redes de computadores A deacutecada de 90 foi definitiva para a consolidaccedilatildeo dos sistemas operacionais baseados em

interfaces graacuteficas

Atualmente temos as plataformas multicore (vaacuterios nuacutecleos) disponiacuteveis em computadores

pessoais e ateacute notebooks possibilitando cada vez mais a paralelizaccedilatildeo de aplicaccedilotildees e elevando

em muito o tempo de execuccedilatildeo dos programas Os fanaacuteticos pelos jogos de computador que o

digam

Os sistemas operacionais - satildeo parte fundamental dos computadores satildeo responsaacuteveis pororganizar os processos (programas) que estatildeo sendo executados pelo processador criando uma

fila de processos que garante que todos receberatildeo sua parcela de processamento

Para Fixar

Escreva um breve resumo sobre o processo evolutivo dos Softwares

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________ __________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1565

15

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

PRINCIacutePAIS SISTEMAS OPERACIONAIS

Principais SO que deram iniacutecio a era Windows MCs Linux e Unix

1987 ndash Andrew Tanenbaum um professor de computaccedilatildeo holandecircs desenvolve um sistema

operacional didaacutetico simplificado mas respeitando a API do UNIX que foi batizado como Minix

1987 ndash IBM e Microsoft apresentam a primeira versatildeo do OS2 um sistema multitarefa destinado

a substituir o MS-DOS e o Windows Mais tarde as duas empresas rompem a parceria a IBM

continua no OS2 e a Microsoft investe no ambiente Windows

1991 ndash Linus Torvalds um estudante de graduaccedilatildeo Finlandecircs inicia o desenvolvimento do Linux

lanccedilando na rede Usenet o nuacutecleo 001 logo abraccedilado por centenas de programadores ao redor

do mundo

1993 ndash a Microsoft lanccedila o Windows NT o primeiro sistema 32 bits da empresa

Capiacutetulo 2 ndash Banco de Dados

Banco de dados eacute um arquivo especial que armazena dados arrumados sob forma de

tabelas ou matrizes (em linhas e colunas) Quando um conjunto de informaccedilotildees possui muitasvariaacuteveis interligadas entre si eacute aconselhaacutevel que sejam armazenadas e trabalhadas em um

banco de dados Os bancos de dados fornecem uma seacuterie de funcionalidades que natildeo satildeo

encontradas em arquivos comuns ldquoBancos de dados satildeo coleccedilotildees de informaccedilotildees que se

relacionam de forma que crie um sentidordquo Satildeo de vital importacircncia para empresas e haacute duas

deacutecadas se tornaram a principal peccedila dos sistemas de informaccedilatildeo ldquoFonte Wikipeacutediardquo

Entatildeo um banco de dados eacute uma entidade na qual eacute possiacutevel armazenar dados de maneira

estruturada e com a menor redundacircncia possiacutevel Estes dados devem poder ser utilizadas porprogramas por usuaacuterios diferentes Assim a noccedilatildeo baacutesica de dados eacute acoplada geralmente a

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1665

16

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

uma rede a fim de poder pocircr conjuntamente estas informaccedilotildees daiacute o nome banco Fala-se

geralmente de sistema de informaccedilatildeo para designar toda a estrutura que reuacutene os meios

organizados para poder compartilhar dados

DADOS amp INFORMACcedilOtildeES

Muitos consideram dados e informaccedilotildees como palavras sinocircnimas mas na verdade natildeo satildeo

Para entender o que eacute um banco de dados eacute muito importante saber a diferenccedila entre essas duas

palavras

Dados satildeo fatos brutos em sua forma primaacuteria E muitas vezes os dados podem natildeo fazer

sentido sozinhos

Informaccedilotildees consistem no agrupamento de dados de forma organizada para fazer sentido

gerar conhecimento

Por exemplo o nuacutemero 2001 isoladamente faz algum sentido Natildeo Isso eacute um dado E se eu

dissesse ldquoAno do atentado terrorista agraves torres gecircmeas 2001Prime Agora faz sentido Isso eacute

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1765

17

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

uma informaccedilatildeo Um banco de dados eacute uma estrutura de dados organizada que permite a

extraccedilatildeo de informaccedilotildees

Metadados ndash Eacute todo dado relativo a outro dado eacute chamado de metadados No exemplo anterior

do ano 2001 o dado ldquoAno do atentado terrorista agraves torres gecircmeasrdquo eacute um metadado pois ele eacute um

dado sobre o dado ldquo2001rdquo Outro exemplo mais comum em banco de dados o campo telefone da

tabela cliente tem entre outros os seguinte metadados nome (telefone) tipo (texto) tamanho (30

caracteres) obrigatoriedade (natildeo) etc

Um banco de dados eacute formado por dado e metadados Sem os metadados natildeo seria

possiacutevel organizar e extrair informaccedilotildees de um banco de dados

Para Fixar

Dados - Em informaacutetica designa-se por dados os elementos de partida que servem de base

para o tratamento e sobre os quais o computador efetua as operaccedilotildees necessaacuterias agrave tarefa emquestatildeo

Os dados satildeo uma representaccedilatildeo dos fatos conceitos ou instruccedilotildees de uma maneira

normalizada que se adapte agrave comunicaccedilatildeo interpretaccedilatildeo e processamento pelo ser humano ou

atraveacutes de maacutequinas automaacuteticas

Os dados satildeo representados por siacutembolos como por exemplo as letras do alfabeto a b c

etc mas natildeo satildeo em si a informaccedilatildeo desejada

ExemploO I O C O M B - satildeo dados mas natildeo eacute informaccedilatildeo perceptiacutevel ao homem

A informaccedilatildeo natildeo eacute mais do que dados organizados e ordenados de forma uacutetil Isto eacute informaccedilatildeo

eacute o conhecimento produzido como resultado do processamento de dados

Se processarmos os dados que tiacutenhamos anteriormente entatildeo obtemos a informaccedilatildeo

O I O C O M B - Dados

- Processamento

C O M B O I O ndash Informaccedilatildeo

Para fixar

Escreva o significado de

Dados___________________________________________________________________

_________________________________________________________________________

Informaccedilatildeo_______________________________________________________________

_________________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1865

18

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Metadados_______________________________________________________________

_________________________________________________________________________

Banco de

dados___________________________________________________________________

_________________________________________________________________________

A histoacuteria dos bancos de dados

Hoje os bancos de dados satildeo essenciais para muitas empresas e estatildeo no coraccedilatildeo de

muitos sistemas computacionais Ter acesso raacutepido agraves informaccedilotildees eacute muito importante para a

correta tomada de decisotildees em um negoacutecio Se vocecirc pretende trabalhar com desenvolvimento de

softwares com certeza precisaraacute trabalhar com bancos de dados em algum momento Conhecer

a histoacuteria dos bancos de dados e como eles evoluiacuteram eacute muito importante para entender como os

bancos de dados mais comuns satildeo organizados Entatildeo como aconteceu a evoluccedilatildeo dos bancos

de dados

Antigamente as empresas armazenavam dados em fichas de papel que eram organizadas

em arquivos fiacutesicos atraveacutes de pastas Extrair informaccedilotildees e manter esses arquivos organizados

era uma tarefa muito custosa Aleacutem disso o acesso agrave informaccedilatildeo dependia da localizaccedilatildeo

geograacutefica dos arquivos Enfim esses arquivos fiacutesicos evoluiacuteram para arquivos digitais No iniacutecio

cada entidade (clientes funcionaacuterios produtos etc) era um arquivo de dados que eram

acompanhados de um ldquosoftware simplesrdquo para manipular os dados do arquivo esses softwares

permitiam realizar operaccedilotildees de cadastro alteraccedilatildeo exclusatildeo e consulta nos arquivos digitais De

fato melhorou bastante principalmente a tarefa de consulta de informaccedilotildees poreacutem os arquivos

digitais eram ainda uma versatildeo melhorada dos arquivos fiacutesicos

Mas as entidades precisavam relacionar-se por exemplo um produto eacute fornecido por

um fornecedor e com os arquivos digitais relacionaacute-las natildeo era uma tarefa muito trivial os

ldquosoftwares simplesrdquo para manipular os arquivos digitais comeccedilaram a ficar ldquocomplexosrdquo para

permitir os relacionamentos entre entidades Entatildeo na deacutecada de 60 a empresa IBM investiu

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1965

19

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

fortemente em pesquisas para solucionar estes problemas dos bancos de dados digitais

primitivos Vaacuterios modelos de bancos de dados surgiram nesta eacutepoca dentre eles os modelos

hieraacuterquicos e rede

Em junho de 1970 o pesquisador Edgar Frank ldquoTedrdquo Codd da IBM mudou a histoacuteria dos

bancos de dados apresentando o modelo relacional no artigo intitulado ldquoA Relational Model of

Data for Large Shared Data Banksrdquo (Um modelo relacional de dados para grandes bancos de

dados compartilhados) onde o autor apresentou uma forma de usuaacuterios sem conhecimento

teacutecnico armazenarem e extraiacuterem grandes quantidades de informaccedilotildees de um banco de dados

Esse artigo foi o grande impulso para a evoluccedilatildeo dos bancos de dados a partir do artigo de ldquoTedrdquo

Codd que os cientistas aprofundaram a ideia de criar o modelo de banco de dados relacional

BANCO DE DADOS RELACIONAL

Apesar de ter sido o marco dos bancos de dados relacionais o artigo de Codd natildeo foimuito explorado no iniacutecio Soacute no final da deacutecada de 70 que foi desenvolvido um sistema baseado

nas ideias do cientista o ldquoSistema Rrdquo Junto com esse sistema foi criado a linguagem de consulta

estruturada (SQL ndash Structured Query Language) que se tornou a linguagem padratildeo para bancos

de dados relacionais Embora tenha contribuiacutedo para a evoluccedilatildeo dos bancos de dados

relacionais o ldquoSystem Rrdquo natildeo foi muito bem sucedido comercialmente mas os sistemas de banco

de dados seguintes foram baseados nele

Nos anos 80 surgiram outros bancos de dados a Oracle apresentou o Oracle 2 e a IBMo SQLDS (que se tornou DB2) ambos sistemas comerciais de bancos de dados Na sequencia

vieram SQL Server MySQL DBase III Paradox etchellip

BANCOS DE DADOS HOJE

Atualmente existem vaacuterios modelos de bancos de dados tais como orientado a objetos

orientado a documentos etc Mas o mais comum ainda eacute o banco de dados relacional A decisatildeo

entre qual modelo de banco de dados utilizarem baseia-se no tipo de dados que vocecirc pretende

armazenar Por exemplo se vocecirc for armazenar uma grande quantidade de dados em um modelo

pequeno (imagine um banco de dados para o twitter) eacute mais indicado utilizar um banco de dados

orientado a documentos a um banco de dados relacional Muitas questotildees envolvem essa

decisatildeo mas natildeo eacute uma questatildeo de superioridade entre uma ou outra tecnologia todas tecircm proacutes

e contras e satildeo mais indicadas ou natildeo para cada problema

Para fixar

Faccedila um breve resumo sobre o surgimos dos bancos de dados

______________________________________________________________________________

______________________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2065

20

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

Dados amp Informaccedilatildeo

A informaccedilatildeo eacute encarada atualmente como um dos recursos mais importantes de uma

organizaccedilatildeo contribuindo decisivamente para a sua maior ou menor competitividade De fato

com o aumento da concorrecircncia tornou-se vital melhorar as capacidades de decisatildeo a todos osniacuteveis

Hoje mais que nunca a tomada de decisatildeo nas organizaccedilotildees eacute um processo complexo

dada a qualidade de informaccedilatildeo em jogo a sua complexidade e a frequecircncia com que se altera

No entanto para que possa ser utilizada com um apoio eficaz agrave tomada de decisatildeo a informaccedilatildeo

soacute tecircm valor se verificarem simultaneamente algumas condiccedilotildees

ATUALIDADE ndash O valor da informaccedilatildeo dependeraacute em grande parte da sua atualidade

Dado o dinamismo verificado em todos os setores da sociedade em geral e do ambiente

empresarial em particular o periacuteodo de validade da informaccedilatildeo eacute cada vez mais curto Torna-se

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2165

21

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

necessaacuterio dispor de fontes de informaccedilatildeo que acompanhem continuamente essas modificaccedilotildees

Soacute com base em informaccedilatildeo atualizada se podem tomar decisotildees acertadas

CORRECcedilAtildeO ndash Natildeo basta que a informaccedilatildeo seja atual eacute tambeacutem necessaacuterio que na

medida do possiacutevel seja rigorosa Soacute com informaccedilatildeo correta se pode decidir com confianccedila

RELEVAcircNCIA ndash Dado o grande de volume de informaccedilatildeo envolvida o processo de tomada

de decisatildeo ao contraacuterio de ser facilitado pode ser dificultado pelo excesso de informaccedilatildeo A

informaccedilatildeo deve ser devidamente filtrada de tal forma que apenas aquela com relevacircncia para

cada situaccedilatildeo seja considerada

DISPONIBILIDADE ndash Ainda que a informaccedilatildeo verifique os trecircs requisitos anteriores a sua

utilidades poderaacute ser posta em causa se natildeo puder ser disponibilizada de forma imediata no

momento em que eacute solicitada As decisotildees muito ponderadas com o longo periacuteodo de gestaccedilatildeo

satildeo cada vez mais situaccedilotildees do passado Hoje dadas as caracteriacutesticas do meio envolvente oprocesso de tomada de decisatildeo tem que ser quase instantacircneo Para isso a informaccedilatildeo tem que

ser disponibilizada rapidamente caso contraacuterio deixa de ser uacutetil

LEGIBILIDADE - Esta condiccedilatildeo apesar de apresentada em uacuteltimo lugar natildeo eacute por isso

menos importante A informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada

De fato de nada vale que a informaccedilatildeo seja atual precisa relevante e disponibilizada em

tempo oportuno se natildeo puder ser entendida A forma como eacute disponibilizada tem tambeacutem grande

importacircncia informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada A forma como eacutedisponibilizada tem tambeacutem grande importacircncia

Quanto aos requisitos de atualidade e correccedilatildeo da informaccedilatildeo para que esta possa ser

correta e atual os dados de onde eacute derivada tecircm forccedilosamente que ser precisos e atualizados

Quanto aos requisitos de relevacircncia disponibilidade e legibilidade da informaccedilatildeo estes tecircm mais

a ver com os meios utilizados para o processamento dos dados

Como eacute que a informaccedilatildeo eacute organizada

A organizaccedilatildeo da informaccedilatildeo eacute efetuada de acordo com criteacuterios distintos como

Hierarquia dos seus componentes

O tipo de assunto a que se refere

Forma de armazenamento

Quanto agrave HIERARQUIA DOS COMPONENTES DA INFORMACcedilAtildeO esta eacute organizada em

Caracteres Campos Registros Ficheiros Caracteres - podem ser numeacutericos alfabeacuteticos ou

sinais de pontuaccedilatildeo Campos - satildeo conjuntos de caracteres que identificam um componente de

um registo Registos - satildeo agrupamentos de campos descritivos de uma realidade Ficheiros - satildeo

conjuntos de registos cuja informaccedilatildeo eacute estruturalmente analoacutegica

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2265

22

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Quanto AO TIPO DE ASSUNTO a que se refere agrave informaccedilatildeo

Esta pode ser como que etiquetada de modo a tornar faacutecil a sua procura e a evitar perdas

de tempo

Quando a informaccedilatildeo estaacute armazenada em ficheiros estes indicam o seu tipo atraveacutes de

uma extensatildeo ao nome do ficheiro

Algumas das extensotildees mais comuns satildeo

- COM ficheiro de comandos - BACK backup ou coacutepias de seguranccedila- EXE executaacuteveis - SYS ficheiros de sistema

- BAT processamento batch - XLS folha de caacutelculo provenientes do Excel

- TXT texto no formato ASCII - PPT apresentaccedilotildees provenientes do PowerPoint

- PAS programas em Linguagem Pascal - MBD base de dados provenientes do Access

- C programas em Linguagem C - DOC documentos provenientes de um processador de

texto

Quanto Agrave FORMA DE ARMAZENAMENTO da informaccedilatildeoRelativamente ao armazenamento por exemplo no disco riacutegido do computador a

informaccedilatildeo eacute organizada em diretorias cujo nome revela o tipo de ficheiros que aiacute se encontram

podendo cada diretorias conter diversas subdiretorias

Organizaccedilatildeo dos dados num Computador

Os dados que fornecemos a um computador para processar podem ser de trecircs tipos

quantitativos classificativos referenciais

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2365

23

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Dados quantitativos - satildeo os que exprimem quantidades e por isso normalmente servem

de base para caacutelculos aritmeacuteticos Exemplo a ficha escolar as notas do periacuteodo as faltas o total

das faltas

bull Dados classificativos - satildeo os que descrevem ou especificam os elementos envolvidos e

quantificados Normalmente servem de complemento aos dados quantitativos identificando

pessoas objetos situaccedilotildees etc Natildeo servem portanto para elementos de caacutelculo Exemplo a

ficha escolar o nome do aluno o nome da disciplina o nome do professor

bull Dados referenciais - satildeo dados que permitem controlar e referenciar os elementos

tratados Exemplo a ficha escolar o ano letivo o nuacutemero do aluno a turma

Para fixar

Escreva de forma resumida como podemos organizar os dados

_________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

Tipos de Operaccedilotildees realizadas sobre os dados

O tipo de operaccedilotildees efetuadas depende dos objetivos do processamento e igualmente dostipos de dados nele envolvidos pois o computador pode processar dados numeacutericos ou natildeo

numeacutericos Assim temos como operaccedilotildees possiacuteveis num processamento

bull Operaccedilotildees aritmeacuteticas - satildeo efetuadas apenas sobre dados numeacutericos e satildeo

basicamente constituiacutedas por somas subtraccedilotildees multiplicaccedilotildees divisotildees e outras similares

bull Operaccedilotildees loacutegicas - satildeo efetuadas sobre dados numeacutericos ou natildeo numeacutericos Estas

operaccedilotildees satildeo tambeacutem por vezes designadas por operaccedilotildees de comparaccedilatildeo

bull Operaccedilotildees de movimentaccedilatildeo interna - satildeo efetuadas sobre qualquer tipo de dados e

consistem na coacutepia e mudanccedila de localizaccedilatildeo interna dos dados na memoacuteria do computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2465

24

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Operaccedilatildeo de InputOutput - satildeo as operaccedilotildees que envolvem os oacutergatildeos de entrada e

saiacuteda permitindo a comunicaccedilatildeo entre o operador e a maacutequina

Funccedilotildees do processamento de dados

Considera-se como processamento de dados o conjunto de todas as operaccedilotildees efetuadas desde

a entrada dos dados ateacute agrave saiacuteda da informaccedilatildeo Todas estas operaccedilotildees de vaacuterios tipos satildeo

normalmente associadas a seis funccedilotildees do processamento de dados input ordenaccedilatildeo

processamento armazenamento output e controle

bull Input - fase de seleccedilatildeo e aquisiccedilatildeo dos dados pelo computador

bull Ordenaccedilatildeo - esta eacute uma funccedilatildeo auxiliar O seu objetivo eacute dispor os dados de uma forma

organizada (ordenada) de modo a facilitar o seu tratamento Se os dados se mantiverem

ordenados segundo um determinado criteacuterio preacute-definido a sua pesquisa eacute mais faacutecil o que faz

aumentar a velocidade do processamento

bull Processamento - considera-se processamento ao conjunto de todas as operaccedilotildees

efetuadas internamente pelo computador na manipulaccedilatildeo dos dados

bull Armazenamento - esta eacute uma funccedilatildeo muito importante que permite posteriormente

analisar as etapas e os resultados do processamento

bull Output - eacute a obtenccedilatildeo de resultados sob a forma de informaccedilatildeo significativa para as

pessoas a quem se destina

bull Controle - a sua finalidade eacute detectar corrigir e eliminar possiacuteveis erros ou afastamentosem relaccedilatildeo aos objetivos inicialmente traccedilados

Utilidade de um banco de dados

Um banco de dados permite pocircr dados agrave disposiccedilatildeo de usuaacuterios para uma consulta uma

introduccedilatildeo ou uma atualizaccedilatildeo assegurando-se dos direitos atribuiacutedos a estes uacuteltimos Isso eacute

ainda mais uacutetil quando os dados informaacuteticos satildeo cada vez mais numerosos

Um banco de dados pode ser local quer dizer utilizaacutevel em uma maacutequina por um usuaacuterio

ou repartida quer dizer que as informaccedilotildees satildeo armazenadas em maacutequinas distantes eacessiacuteveis por rede A vantagem essencial da utilizaccedilatildeo dos bancos de dados eacute a possibilidade

de poder ser acessada por vaacuterios usuaacuterios simultaneamente

A gestatildeo dos bancos de dados

A fim de poder controlar os dados bem como os usuaacuterios a necessidade de um sistema de

gestatildeo fez-se sentir rapidamente A gestatildeo do banco de dados faz-se graccedilas a um sistema

chamado SGBD (sistema de gestatildeo de bancos de dados) ou em inglecircs DBMS (Database

managment system) O SGBD eacute um conjunto de serviccedilos (aplicaccedilotildees software) que permitem

gerenciar os bancos de dados quer dizer

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2565

25

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Permitir o acesso aos dados de maneira simples

Autorizar um acesso agraves informaccedilotildees a muacuteltiplos usuaacuterios

Manipular os dados presentes no banco de dados (inserccedilatildeo supressatildeo modificaccedilatildeo)

O SGBD pode decompor-se em trecircs subsistemas

O sistema de gestatildeo de arquivos permite o armazenamento das informaccedilotildees num suporte

fiacutesico

O SGBD interno gerencia a emissatildeo das informaccedilotildees

O SGBD externo representa a interface com o usuaacuterio

Bancos de dados satildeo conjuntos de dados com uma estrutura regular que organizam

informaccedilatildeo Um banco de dados normalmente agrupa informaccedilotildees utilizadas para um mesmo fim

O modelo de dados mais adotado hoje em dia eacute o modelo relacional onde as estruturas

tecircm a forma de tabelas compostas por linhas e colunas

Resumindo um banco de dados eacute uma coleccedilatildeo de dados relacionados Entende-se por

dado toda a informaccedilatildeo que pode ser armazenada e que apresenta algum significado impliacutecito

dentro do contexto ao qual ele se aplica Por exemplo num sistema bancaacuterio uma pessoa eacuteidentificada pelo seu cpf(cliente) Em um sistema escolar a pessoa eacute identificada pelo seu nuacutemero

de matriacutecula(aluno) Aleacutem disso os dados que seratildeo armazenados em cada situaccedilatildeo podem

diferir consideravelmente

Atividades

1) Onde utilizar um banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2665

26

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2) Como funciona um sistema gerenciador de banco de dados

3) Como funciona o modelo relacional

Modelo Relacional

O modelo relacional eacute uma teoria matemaacutetica desenvolvida por Edgar Frank Codd para

descrever como as bases de dados devem funcionar Embora esta teoria seja a base para o

software de bases de dados relacionais muito poucos sistemas de gestatildeo de bases de dados

seguem o modelo de forma restrita e todos tecircm funcionalidades que violam a teoria desta forma

variando a complexidade e o poder A discussatildeo se esses bancos de dados merecem ser

chamados de relacional ficou esgotada com tempo com a evoluccedilatildeo dos bancos existentes

De acordo com a arquitetura ANSI SPARC em trecircs niacuteveis os Bancos de dados

relacionais consistem de trecircs componentes

bull uma coleccedilatildeo de estruturas de dados formalmente chamadas de relaccedilotildees ou

informalmente tabelas compondo o niacutevel conceitual

bull uma coleccedilatildeo dos operadores a aacutelgebra e o caacutelculo relacionais que constituem a base da

linguagem SQL

bull uma coleccedilatildeo de restriccedilotildees da integridade definindo o conjunto consistente de estados de

base de dados e de alteraccedilotildees de estados As restriccedilotildees de integridade podem ser de quatro

tipos

bull domiacutenio (ou tipo de dados) bull atributo

bull restriccedilotildees de base de dados

De acordo com o Princiacutepio de Informaccedilatildeo toda informaccedilatildeo tem de ser representada como dados

qualquer tipo de atributo representa relaccedilotildees entre conjuntos de dados

Nos bancos de dados relacionais os relacionamentos entre as tabelas natildeo satildeo codificados

explicitamente na sua definiccedilatildeo Em vez disso se fazem implicitamente pela presenccedila de

atributos chave As bases de dados relacionais permitem aos utilizadores (incluindo

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2765

27

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

programadores) escreverem consultas (queries) reorganizando e utilizando os dados de forma

flexiacutevel e natildeo necessariamente antecipada pelos projetistas originais

Esta flexibilidade eacute especialmente importante em bases de dados que podem ser utilizadas

durante deacutecadas tornando as bases de dados relacionais muito populares no meio comercial

Um dos pontos fortes do modelo relacional de banco de dados eacute a possibilidade de

definiccedilatildeo de um conjunto de restriccedilotildees de integridade Estas definem os conjuntos de estados e

mudanccedilas de estado consistentes do banco de dados determinando os valores que podem e os

que natildeo podem ser armazenados

Aplicaccedilotildees de bancos de dados

Bancos de dados satildeo usados em muitas aplicaccedilotildees enquanto atravessando virtualmente a

gama inteira de software de computador Bancos de dados eacute o meacutetodo preferido de

armazenamento para aplicaccedilotildees multiusuaacuterias grandes onde a coordenaccedilatildeo entre muitosusuaacuterios eacute necessaacuteria Ateacute mesmo usuaacuterios individuais os acham convenientes entretanto e

muitos programas de correio eletrocircnico e os organizadores pessoais estatildeo baseados em

tecnologia de banco de dados standard

Aplicativo de Banco de Dados

Um aplicativo de banco de dados eacute um tipo de software exclusivo para gerenciar um banco

de dados Aplicativos de banco de dados abrangem uma vasta variedade de necessidades e

objetivos de pequenas ferramentas como uma agenda ateacute complexos sistemas empresariaispara desempenhar tarefas como a contabilidade

O termo Aplicativo de Banco de dados usualmente se refere a softwares que oferecem

uma interface para o banco de dados Exemplos de aplicativos de banco de dados satildeo Microsoft

Visual FoxPro Microsoft Access dBASE FileMaker (em certa medida) HyperCard MySQL

PostgreSQL Microsoft SQL Server e Oracle

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2865

28

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Capiacutetulo 3 - HARDWARE E SOFTWARE

O QUE Eacute O HARDWARE

No acircmbito da informaacutetica eacute dada a designaccedilatildeo de hardware a todos os componentes

fiacutesicos que fazem parte de um sistema informaacutetico incluiacutedo toda a parte fiacutesica de um computador

(nomeadamente os processadores motherbord disco riacutegido placas de som placas de viacutedeo

memoacuterias etc) e todos os perifeacutericos (tais como teclados mouse monitores impressoras

scanners modems entre outros)

Peccedilas de um computador

Se vocecirc usa um computador desktop jaacute deve saber que natildeo existe uma parte uacutenica

chamada computador Um computador eacute na verdade um sistema de muitas partes funcionando

em conjunto As partes fiacutesicas que vocecirc pode ver e tocar satildeo denominadas

coletivamente hardware (O software por outro lado se refere agraves instruccedilotildees ou programas que

dizem ao hardware o que fazer)

A ilustraccedilatildeo a seguir mostra os dispositivos de hardware mais comuns em um sistema de

computador desktop Seu sistema pode ter uma aparecircncia um pouco diferente mas

provavelmente possui a maioria destas peccedilas Um computador laptop possui peccedilas semelhantes

mas as combina em um uacutenico pacote do tamanho de um caderno

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2965

29

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Sistema de computador desktop

Unidade de sistema

A unidade de sistema (Gabinete) eacute o nuacutecleo de um sistema de computador Normalmente

eacute uma caixa retangular colocada sobre a mesa ou embaixo dela Dentro dessa caixa estatildeo os

componentes eletrocircnicos que processam as informaccedilotildees O mais importante desses

componentes eacute a CPU (unidade de processamento central) ou microprocessador que atua como

o ceacuterebro do computador Outro componente eacute a memoacuteria RAM que armazena

temporariamente informaccedilotildees utilizadas pela CPU enquanto o computador estaacute ligado As

informaccedilotildees gravadas na RAM satildeo apagadas quando o computador eacute desligado

Quase todas as outras partes do computador se conectam agrave unidade de sistema por meio

de cabos Os cabos satildeo conectados aportas (aberturas) especiacuteficas geralmente na parte traseira

da unidade de sistema O hardware que natildeo faz parte da unidade de sistema eacute

chamado dispositivo perifeacuterico ou simplesmente dispositivo

Unidade de sistema

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3065

30

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Armazenamento

O computador possui uma ou mais unidades de disco ou seja dispositivos que armazenam

informaccedilotildees em um disco de plaacutestico ou de metal O disco preserva as informaccedilotildees mesmo

quando o computador estaacute desligado

Unidade de disco riacutegido

A unidade de disco riacutegido do computador armazena informaccedilotildees em um disco riacutegido que eacute um

prato riacutegido ou pilha de pratos com uma superfiacutecie magneacutetica Como os discos riacutegidos podem

reter uma grande quantidade de informaccedilotildees normalmente eles funcionam como principal meio

de armazenamento do computador guardando praticamente todos os programas e arquivos Em

geral a unidade de disco riacutegido fica localizada dentro da unidade de sistema

Unidade de disco riacutegidoUnidades de CD e DVD

Hoje em dia quase todos os computadores vecircm equipados com uma unidade de CD ou DVD

geralmente localizada na frente da unidade de sistema As unidades de CD usam lasers para ler

(recuperar) dados de um CD Muitas delas tambeacutem podem gravar dados em CDs Se vocecirc tiver

uma unidade de disco gravaacutevel poderaacute armazenar coacutepias de seus arquivos em CDs vazios A

unidade de CD tambeacutem serve para tocar CDs de muacutesica no computador

CD

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3165

31

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

As unidades de DVD fazem o mesmo que as unidades de CD e tambeacutem lecircem DVDs Se vocecirc

tiver uma unidade de DVD poderaacute ver filmes no computador Muitas unidades de DVD podem

gravar dados em DVDs vazios

Dica

Se vocecirc tiver uma unidade de CD ou DVD gravaacutevel faccedila backup (copie) periodicamente de seus

arquivos importantes em CDs ou DVDs Dessa forma caso venha a ocorrer alguma falha no disco

riacutegido vocecirc natildeo perderaacute os dados

Unidade de disquete

As unidades de disquete armazenam informaccedilotildees em discos tambeacutem chamados discos

flexiacuteveis ou disquetes Comparado a CDs e DVDs os disquetes podem armazenar apenas uma

pequena quantidade de dados Eles tambeacutem recuperam informaccedilotildees de forma mais lenta e satildeo

mais vulneraacuteveis a danos Por esses motivos as unidades de disquete satildeo cada vez menosusadas embora ainda sejam incluiacutedas em alguns computadores

Disquete

Por que estes discos satildeo chamados de disquetes Apesar de a parte externa ser composta de

plaacutestico riacutegido isso eacute apenas a capa O interior do disco eacute feito de um material de vinil fino e

flexiacutevel

Mouse

Mouse eacute um pequeno dispositivo usado para apontar e selecionar itens na tela do computador

Embora existam mouses de vaacuterias formas o modelo mais comum se assemelha a um rato (como

diz o nome em inglecircs) Ele eacute pequeno e alongado sendo conectado agrave unidade de sistema por um

cabo comprido que faz lembrar uma cauda Alguns mouses mais novos satildeo sem fio

Mouse

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3265

32

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O mouse geralmente possui dois bototildees um botatildeo principal (normalmente o da esquerda) e um

botatildeo secundaacuterio Muitos mouses tambeacutem tecircm uma roda entre os dois bototildees que permite

percorrer as telas de informaccedilotildees

Ponteiros do mouse

Agrave medida que vocecirc move o mouse com a matildeo um ponteiro na tela se move na mesma direccedilatildeo

(A aparecircncia do ponteiro pode mudar dependendo da sua posiccedilatildeo na tela) Quando quiser

selecionar um item aponte para ele e clique no botatildeo principal ou seja pressione-o e solte-o

Apontar e clicar com o mouse eacute a principal maneira de interagir com o computador Para mais

informaccedilotildees consulte Usando o mouse

Teclado

A finalidade principal do teclado eacute digitar texto no computador Ele possui teclas para letras e

nuacutemeros exatamente como em uma maacutequina de escrever A diferenccedila estaacute nas teclas especiais

As teclas de funccedilatildeo localizadas na linha superior executam funccedilotildees diferentes dependendo

de onde satildeo usadas

O teclado numeacuterico localizado agrave direita na maioria dos teclados permite inserir nuacutemeros

rapidamente

As teclas de navegaccedilatildeo como as teclas de seta permitem mover sua posiccedilatildeo dentro de

documentos ou paacuteginas da Web

Teclado

Vocecirc tambeacutem pode usar o teclado para executar muitas das mesmas tarefas que executa com

um mouse Para mais informaccedilotildees consulte Usando o teclado

Monitor

O monitor exibe informaccedilotildees em forma visual usando texto e elementos graacuteficos A parte do

monitor que exibe as informaccedilotildees eacute chamada tela Como a tela de uma televisatildeo a tela de um

computador pode mostrar imagens paradas ou em movimento

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3365

33

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Existem dois tipos baacutesicos de monitores CRT (tubo de raios catoacutedicos) e LCD (viacutedeo de cristal

liacutequido) Ambos produzem imagens niacutetidas mas os monitores LCD levam vantagem por serem

mais finos e mais leves

Monitor LCD (agrave esquerda) monitor CRT (agrave direita)

Impressora

Uma impressora transfere dados de um computador para o papel Vocecirc natildeo precisa de

impressora para usar o computador mas se tiver uma poderaacute imprimir emails cartotildees convites

anuacutencios e outros materiais Muitas pessoas tambeacutem preferem imprimir suas fotos em casa

Os dois principais tipos de impressora satildeo a jato de tinta e a laser As impressoras a jato de tinta

satildeo as mais populares para uso domeacutestico Elas podem imprimir em preto e branco ou em cores

e produzem fotos de alta qualidade quando usadas com papel especial As impressoras a laser

satildeo mais raacutepidas e mais adequadas para uso intenso

Impressora a jato de tinta (agrave esquerda) impressora a laser (agrave direita)

Alto-falantes

Os alto-falantes satildeo usados para tocar som Eles podem vir embutidos na unidade de sistema ou

ser conectados com cabos Satildeo eles que permitem ouvir muacutesica e efeitos de som no computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3465

34

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Alto-falantes do computador

Modem

Para conectar o computador agrave Internet vocecirc precisa de um modem um dispositivo que envia e

recebe informaccedilotildees do computador por linha telefocircnica ou cabo de alta velocidade Agraves vezes os

modems vecircm embutidos na unidade de sistema mas os de alta velocidade normalmente satildeo

componentes separados

Modem a cabo

O QUE Eacute O SOFTWARE

O Software eacute uma aplicaccedilatildeo ou programa do computador escrita numa determinadalinguagem interpretaacutevel por uma determinada maacutequina (o processador de um computador ou

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3565

35

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

outro equipamento) e que permite executar determinadas tarefas para as quais o software foi

projetado Estes programas satildeo compostos por uma sequecircncia de instruccedilotildees (os comandos) e de

declaraccedilotildees de dados as quais satildeo armazenaacuteveis num meio digital

Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por um

computador com o objetivo de executar tarefas especiacuteficas Tambeacutem pode ser definido como

os programas que comandam o funcionamento de um computador

Em um computador o software eacute classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer

instruccedilotildees para o hardware O hardware eacute toda a parte fiacutesica que constitui o computador por

exemplo a CPU a memoacuteria e os dispositivos de entrada e saiacuteda O software eacute constituiacutedo por

todos os programas que existem para um referido sistema quer sejam produzidos pelo proacuteprio

utente ou pelo fabricante do computador

O termo inglecircs software foi usado pela primeira vez em 1958 em um artigo escrito pelo cientistaamericano John Wilder Tukey Foi tambeacutem ele o responsaacutevel por introduzir o termo bit para

designar diacutegito binaacuterio

Os softwares podem ser classificados como

SOFTWARE DE SISTEMA

Geralmente dividido em SISTEMAS OPERACIONAIS e PROGRAMAS UTILITAacuteRIOS Para

comeccedilar os Sist Operacionais satildeo de grande importacircncia pois eles nos datildeo a opccedilatildeo de dizer ao

computador o que ele deve fazer Dois exemplos bastante conhecidos do nosso puacuteblico satildeoo Mac o Windows e o Linux Os Programas utilitaacuterios geralmente satildeo softwares de menor porte

com funccedilotildees mais especificas tipo Verificaccedilatildeo de Disco Coacutepias de Seguranccedila entre outros

SOFTWARE APLICATIVO

Neste tipo de software se enquadram todos aqueles programas que satildeo utilizados na execuccedilatildeo

de tarefas especiacuteficas Posso citar vaacuterios exemplos mas os mais comuns satildeo os processadores

de texto como o Word que servem para trabalhar com os mais diversos tipos de textos emitir

etiquetas e fazer formulaacuterios as planilhas eletrocircnicas como o Excel satildeo poderosas ferramentas

de caacutelculos que facilitam tanto aquele trabalho aacuterduo de matemaacutetica fazer graacuteficos com real

representaccedilatildeo dos dados eacute uma coisa muito boa pra quem precisa e por uacuteltimo o que muitos

usam mas natildeo sabem o nome ao certo que satildeo os Browsers ou Navegadores softwares usados

para navegar na Web dentre eles os mais conhecidos atualmente satildeo Windows Internet

Explorer Firefox Google Chrome Opera e Safaacuteri

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3665

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3765

37

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

hoje eles satildeo bastante usados em situaccedilotildees de treinamentos de pessoas para enfrentar casos no

seu dia-a-dia

SOFTWARE DE JOGOS

Geralmente satildeo softwares relacionados a entretenimento para proporcionar lazer e diversatildeo

Dispotildeem de muitos recursos interativos e existem de todos os tipos desde estrateacutegias ateacute

simulaccedilotildees reais de muitas coisas como corridas (Need for Speed) ateacute mesmo de vida como o

Second Life

SOFTWARES ABERTOS

Satildeo aqueles que permitem que o usuaacuterio produza com liberdade e criatividade se classificam

nessa categoria aqueles softwares de apresentaccedilotildees bancos de dados e vaacuterios outros

Para fixar

Descreva uma definiccedilatildeo para os tipos de softwares

Software de Sistema_____________________________________________________________

Software Aplicativo ______________________________________________________________

Software de Linguagem __________________________________________________________

Software abertos _______________________________________________________________

Capiacutetulo 4 - Conceitos Baacutesicos de Banco de Dados

Segundo Korth um banco de dados ldquoeacute uma coleccedilatildeo de dados inter -relacionados

representando informaccedilotildees sobre um domiacutenio especiacuteficordquo ou seja sempre que for possiacutevel

agrupar informaccedilotildees que se relacionam e tratam de um mesmo assunto posso dizer que tenho

um banco de dados

Podemos exemplificar situaccedilotildees claacutessicas como uma lista telefocircnica um cataacutelogo de CDs ou um

sistema de controle de RH de uma empresa

Jaacute um sistema de gerenciamento de banco de dados (SGBD) eacute um software que possui

recursos capazes de manipular as informaccedilotildees do banco de dados e interagir com o usuaacuterio

Exemplos de SGBDs satildeo Oracle SQL Server DB2 PostgreSQL MySQL o proacuteprio Access ouParadox entre outros

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3865

38

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Por uacuteltimo temos que conceituar um sistema de banco de dados como o conjunto de quatro

componentes baacutesicos dados hardware software e usuaacuterios Date conceituou que ldquosistema de

bancos de dados pode ser considerado como uma sala de arquivos eletrocircnicardquo A Figura 1 ilustra

os componentes de um sistema de banco de dados

Componentes de um sistema de banco de dados

Os objetivos de um sistema de banco de dados satildeo o de isolar o usuaacuterio dos detalhes

internos do banco de dados (promover a abstraccedilatildeo de dados) e promover a independecircncia dos

dados em relaccedilatildeo agraves aplicaccedilotildees ou seja tornar independente da aplicaccedilatildeo a estrateacutegia de

acesso e a forma de armazenamento

Abstraccedilatildeo de dados

O sistema de banco de dados deve garantir uma visatildeo totalmente abstrata do banco de

dados para o usuaacuterio ou seja para o usuaacuterio do banco de dados pouco importa qual unidade de

armazenamento estaacute sendo usada para guardar seus dados contanto que os mesmos estejam

disponiacuteveis no momento necessaacuterio

Esta abstraccedilatildeo se daacute em trecircs niacuteveis (Figura 2) Niacutevel de visatildeo do usuaacuterio as partes do banco de dados que o usuaacuterio tem acesso de

acordo com a necessidade individual de cada usuaacuterio ou grupo de usuaacuterios

Niacutevel conceitual define quais os dados que estatildeo armazenados e qual o relacionamento

entre eles

Niacutevel fiacutesico eacute o niacutevel mais baixo de abstraccedilatildeo em que define efetivamente de que maneira

os dados estatildeo armazenados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3965

39

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 2 Niacuteveis de abstraccedilatildeo

Projeto de banco de dados

Todo bom sistema de banco de dados deve apresentar um projeto que visa a organizaccedilatildeo das

informaccedilotildees e utilizaccedilatildeo de teacutecnicas para que o futuro sistema obtenha boa performance e

tambeacutem facilite infinitamente as manutenccedilotildees que venham a acontecer

O projeto de banco de dados se daacute em duas fases

Modelagem conceitual Projeto loacutegico

Estas duas etapas se referem a um sistema de banco de dados ainda natildeo implementado ou seja

que ainda natildeo exista um novo projeto Para os casos em que o banco de dados jaacute exista mas eacute

um sistema legado por exemplo ou um sistema muito antigo sem documentaccedilatildeo o processo de

projeto de banco de dados se daraacute atraveacutes da utilizaccedilatildeo de uma teacutecnica chamada de Engenharia

Reversa que seraacute visto em outra oportunidade

Modelo conceitual

Eacute a descriccedilatildeo do BD de maneira independente ao SGBD ou seja define quais os dados

que apareceratildeo no BD mas sem se importar com a implementaccedilatildeo que se daraacute ao BD Desta

forma haacute uma abstraccedilatildeo em niacutevel de SGBD

Uma das teacutecnicas mais utilizadas dentre os profissionais da aacuterea eacute a abordagem entidade-

relacionamento (ER) onde o modelo eacute representado graficamente atraveacutes do diagrama entidade-

relacionamento (DER) (Figura 3)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 3: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 365

3

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

dependendo do contexto a tecnologia pode ser tudo pra nossa vida melhorar A tecnologia eacute de

uma forma geral o encontro entre a ciecircncia e a engenharia

Computador maacutequina composta de um conjunto de partes eletrocircnicas e eletromecacircnicas capaz

de receber armazenar tratar e produzir informaccedilotildees de forma automaacutetica com grande rapidez e

precisatildeo Eacute um instrumento para agilizar o tratamento da informaccedilatildeo

A tecnologia de computadores fez um progresso incriacutevel nos aproximadamente 55 anos

desde que foi criado o primeiro computador Preccedilos caiacuteram a velocidade de processamento

aumentou e armazenar grandes massas de dados a baixo custo jaacute eacute realidade

Durante a deacutecada de 70 o desempenho dos computadores melhorou cerca de 25 a 30 ao

ano

Com a utilizaccedilatildeo de circuitos integrados nos microcomputadores levou a uma maior otimizaccedilatildeo

(35 ao ano de desempenho)Houve uma queda no desenvolvimento de sistemas utilizando linguagem Assembly

(linguagem de maacutequina) e aumento da utilizaccedilatildeo de sistemas baacutesicos padronizados (Unix Linux)

e automaticamente novas arquiteturas foram se consagrando comercialmente Ao longo do

tempo portanto a tecnologia e os estilos usados na construccedilatildeo de computadores apresentam

pontos comuns e permitem uma classificaccedilatildeo dos computadores em geraccedilotildees

Caracteriacutesticas fundamentais do computador

Anotaccedilotildees

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 465

4

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Vantagens do uso do computador

Para fixar

1 Escreva com suas palavras o que eacute um computador e o que eacute informaacutetica

2 Quais satildeo as vantagens de se utilizar um computador na vida profissional

3 Como vocecirc escolheria o melhor computador para atender agraves suas necessidades

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 565

5

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

A PRIMEIRA GERACcedilAtildeO (1940 ndash 1950)

O primeiro computador eletrocircnico digital foi resultado dos trabalhos de um professor de Fiacutesica da

Universidade de Iowa EUA John Vincent Atanasoff que na busca de um meio para resolver

equaccedilotildees lineares teve a ideia de combinar simultaneamente um circuito eletrocircnico com uma

memoacuteria de varredura mecacircnica usando capacitores Em sua concepccedilatildeo baacutesica o dispositivo

consistia de uma memoacuteria composta de cilindros rotativos

Provido com contatos eleacutetricos na forma de pequenos pinos de latatildeo interligados com

capacitores de papel cuja variaccedilatildeo de carga durante a operaccedilatildeo era monitorado e ajustado por

um circuito eleacutetrico Por sua vez a loacutegica do sistema era feito com 255 vaacutelvulas tipo duplo triacuteodoNo iniacutecio da segunda guerra mundial os computadores eletromecacircnicos disponiacuteveis como

o ldquoASCCrdquo - Automatic Sequence Controlled Calculator - desenvolvido pela IBM EUA jaacute natildeo eram

tatildeo raacutepidos para resolver os complicados caacutelculos baliacutesticos exigidos pelos armamentos usados

no novo tipo de guerra aeacuterea de forma que o aparelho de Atanasoff por ter uma concepccedilatildeo

diferente natildeo mais usando de multivibradores biestaacuteveis ou flip-flop poreacutem de um conceito

eletrocircnico foi agrave origem do emprego da vaacutelvula na incipiente ciecircncia da computaccedilatildeo Assim em 5

de junho de 1943 o governo americano assina um contrato com a universidade da Pensilvacircniapara desenvolver o projeto do ldquoENIACrdquo ou - Electronic Numerical Integrator and Computer

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 665

6

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ENIAC ndash PRIMEIRO COMPUTADOR

Computador integrado numeacuterico eletrocircnico foi o primeiro computador digital eletrocircnico de grandeescala O ENIAC comeccedilou a ser desenvolvido em 1946 durante a II Guerra Mundial para

computar trajetoacuterias taacuteticas que exigissem conhecimento substancial em matemaacutetica mas soacute se

tornou operacional apoacutes o final da guerra

Sua capacidade de processamento era de 5000 operaccedilotildees por segundo

Criado na segunda guerra tinha como principal finalidade caacutelculos baliacutesticos

Possuiacutea 18000 vaacutelvulas termiocircnicas de 160 kW de potecircncia

Pesava 30 Toneladas Esta maacutequina natildeo tinha sistema operacional e seu funcionamento era parecido com

uma calculadora simples de hoje O ENIAC assim como uma calculadora tinha de ser

operado manualmente

A calculadora efetua os caacutelculos a partir das teclas pressionadas fazendo interaccedilatildeo direta com o

hardware no qual era preciso conectar fios relecircs e sequecircncias de chaves para que se

determinasse a tarefa a ser executada A cada tarefa diferente o processo deveria ser refeito A

resposta era dada por uma sequecircncia de lacircmpadas A uacutenica forma de armazenar dados era

atraveacutes de cartotildees perfurados

SEGUNDA GERACcedilAtildeO DOS COMPUTADORES - (1952 - 1964)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 765

7

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Esta Geraccedilatildeo foi originada pela revoluccedilatildeo dos Transistores os quais substituiacuteram as volumosas

vaacutelvulas Houve uma enorme diminuiccedilatildeo em cabos e fios tendo em vista que cada transistor

substituiacutea dezenas de vaacutelvulas Desta maneira os computadores tornaram-se consideravelmente

menores e devido a isso muito mais velozes O computador comeccedila a ser utilizado nas grandes

empresas Projetos foram implementados baseados na utilizaccedilatildeo de transistores houve grandes

avanccedilos no que se refere agraves unidades de memoacuteria principal com a substituiccedilatildeo do sistema de

tubos de raios catoacutedicos pelo de nuacutecleos magneacuteticos (usados ateacute hoje)

A memoacuteria teve um aumento em sua capacidade de armazenamento chegando a 32K

Principais computadores IBM 1401 IBM 7094 Honeywell 800 e IBM 7090

Tanto a vaacutelvula quanto o transistor realizavam um processamento de cada vez Com o

desenvolvimento das teacutecnicas de integraccedilatildeo surgiram os Circuitos Integrados onde numa

pequena caacutepsula continha vaacuterias dezenas centenas ou milhares de transistores ocupando umaaacuterea menor que uma unha dando o nome de microprocessador (processador miniatura) A

linguagem de programaccedilatildeo foi simplificada e jaacute se podia programar atraveacutes de mnemocircnicos

(comandos abreviados) Esta linguagem denomina-se ASSEMBLER As operaccedilotildees de caacutelculos

eram realizadas em milioneacutesimos de segundos Realizando 204000 adiccedilotildeessegundos Aleacutem do

surgimento dos nuacutecleos de ferrite fitas e tambores magneacuteticos passam a ser usados como

memoacuteria

Eacute possiacutevel dividir os computadores desta geraccedilatildeo em duas grandes categoriassupercomputadores e minicomputadores

IBM 7030 tambeacutem conhecido por Strech foi o primeiro supercomputador lanccedilado na

segunda geraccedilatildeo desenvolvido pela IBM Seu tamanho era bem reduzido comparado com

maacutequinas como o ENIAC podendo ocupar somente uma sala comum Ele era utilizado por

grandes companhias custando em torno de 13 milhotildees de doacutelares na eacutepoca Esta maacutequina

executava caacutelculos na casa dos microssegundos o que permitia ateacute um milhatildeo de operaccedilotildees por

segundo Desta maneira um novo patamar de velocidade foi atingido Comparado com os da

primeira geraccedilatildeo os supercomputadores como o IBM 7030 eram mais confiaacuteveis

PDP-8 foi um dos mini-computadores mais conhecidos da segunda geraccedilatildeo Basicamente

foi uma versatildeo mais baacutesica do supercomputador sendo mais atrativo do ponto de vista financeiro

(centenas de milhotildees de doacutelares) Eram menores do que os supercomputadores mas mesmo

assim ainda ocupavam um bom espaccedilo no cocircmodo

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 865

8

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

TERCEIRA GERACcedilAtildeO DOS COMPUTADORES - (1964 - 1971)

A 3ordf Geraccedilatildeo surgiu com a utilizaccedilatildeo dos Circuitos Integrados ndash SLT (Solid Logic Technolo-

gy) uma teacutecnica de micro circuitos Nesta geraccedilatildeo os computadores podiam realizar vaacuterios

processamentos simultacircneos As teacutecnicas de integraccedilatildeo evoluiacuteram de SSI (integraccedilatildeo em

pequena escala) para MSI (integraccedilatildeo em meacutedia escala) LSI (integraccedilatildeo em grande escala) e

VLSI (integraccedilatildeo em muito grande escala) Esta classificaccedilatildeo eacute baseada na quantidade de

componentes que o integrado conteacutem A programaccedilatildeo dos computadores desta geraccedilatildeo foi

facilitada pelo aparecimento de linguagens orientadas para o problema especiacutefico As linguagenssatildeo de natureza universal e assemelham-se cada vez mais a linguagem do homem As

operaccedilotildees de caacutelculos eram realizadas em bilioneacutesimos de segundos Realizando 1280000

adiccedilotildeessegundos

Com a terceira geraccedilatildeo dos computadores surgiram tambeacutem os teclados para digitaccedilatildeo de

comandos Monitores tambeacutem permitiam a visualizaccedilatildeo de sistemas operacionais muito

primitivos ainda completamente distantes dos sistemas graacuteficos que conhecemos e utilizamos

atualmente

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 965

9

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Apesar das facilidades trazidas pelos semicondutores os computadores dessa geraccedilatildeo

natildeo foram reduzidos sendo que um dos modelos de mais sucesso (o IBM 360 que vendeu mais

de 30 mil unidades) chegava a pesar mais do que os antecessores Nessa eacutepoca (final da deacutecada

de 1970 e iniacutecio da deacutecada de 1980) os computadores passaram a ser mais acessiacuteveis

Outro grande avanccedilo da terceira geraccedilatildeo foi a adiccedilatildeo da capacidade de upgrade nas

maacutequinas As empresas poderiam comprar computadores com determinadas configuraccedilotildees e

aumentar as suas capacidades de acordo com a necessidade pagando relativamente pouco por

essas facilidades IBM 360

QUARTA GERACcedilAtildeO DOS COMPUTADORES - (1971 - 1980)

A quarta geraccedilatildeo teve iniacutecio em 1971 quando a Intel lanccedilou o primeiro microprocessador

o Intel 4004 muito mais potente que os circuitos SSI e MSI de ateacute entatildeo e soacute terminou em 1981

com o lanccedilamento dos circuitos ULSI (Circuitos de Escala Ultra Grande) Tem como marco inicial

com os computadores pessoais surgimento do microprocessador a reduccedilatildeo no tamanho dos

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1065

10

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

computadores foi muito grande Surgem muitas linguagens de alto niacutevel e nasce agrave teleinformaacutetica

transmissatildeo de dados entre computadores atraveacutes de rede

Continuou-se o desenvolvimento do Circuito Integrado e a busca de se colocar cada vez

mais um maior nuacutemero de componentes em um chip

A Intel comeccedilou suas pesquisas nessa aacuterea em 1969 Os resultados foram vistos quando

em novembro de 1971 buscando atender ao pedido de uma empresa japonesa que precisava de

um circuito integrado especial a Intel elaborou o 4004 criado por Federico Faggin Ted Hoff

e Stanley Mazor primeiro microprocessador comercial

Internet

De 1969 a 1972 foi criada a Arpanet que deu iniacutecio a Internet (teleinformaacutetica) que conhecemos

hoje A rede entrou no ar em dezembro de 1969 no EUA Eles eram interligados atraveacutes de links

de 50 k criados usando linhas telefocircnicas dedicadas adaptadas para o uso de transmissatildeo de

dados

Em 1971 ocorre a transmissatildeo do primeiro e-mail realizada pela Universidade da Califoacuternia para

um computador na Stanford Research Institute com o texto ldquoLOGINrdquo mas chegou apenas LO

A Ethernet surgiu entre 1972 e 1973 dentro do PARC (o laboratoacuterio de desenvolvimento da Xerox

nos Estados Unidos) onde foi feito o primeiro teste de transmissatildeo de dados usando esse

padratildeo

Em 1974 surgiu o TCPIP que acabou se tornando o protocolo definitivo para uso

na ARPANET e mais tarde na Internet

QUINTA GERACcedilAtildeO DOS COMPUTADORES ndash (1980Atualmente)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1165

11

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Desde o iniacutecio da era dos microcomputadores o avanccedilo tem sido constante O computador

que se fabrica hoje dentro de alguns meses jaacute estaacute obsoleto

Atualmente o que vem surgindo satildeo inuacutemeras renovaccedilotildees com o objetivo de evoluir os sistemas

rdquoEmbora os paradigmas possam mudar as pesquisas normalmente evoluem baseadas em

resultados do passado que se constituem em fundamentos de um desenvolvimento posteriorhelliprdquo

Para Fixar

Escreva um breve resumo sobre o processo evolutivo dos computadores

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________ ___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

__________________________________________________________________

SOFTWARES

O QUE Eacute Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por

um computador com o objetivo de executar tarefas especiacuteficas Em um computador o software eacute

classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer instruccedilotildees para o hardware

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1265

12

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Diferentemente do que muitas pessoas imaginam o computador natildeo faz nada sozinho Ele

apenas processa uma seacuterie de informaccedilotildees inseridas pelo usuaacuterio para entatildeo fornecer os

resultados As informaccedilotildees inseridas e os resultados que recebemos precisam estar num formato

que noacutes humanos conseguimos entender Para facilitar essa comunicaccedilatildeo entre homem e

computador foram criados os softwares ou programas de computador Na realidade tudo que

fazemos com um computador eacute pela execuccedilatildeo desses programas

Um sistema operacional eacute um programa que atua como intermediaacuterio entre o usuaacuterio e o

hardware de um computador O propoacutesito de um sistema operacional eacute propiciar um ambiente no

qual o usuaacuterio possa executar outros programas de forma conveniente por esconder detalhes

internos de funcionamento e eficiecircncia por procurar gerenciar de forma justa os recursos do

sistema

Vimos que o sistema operacional interage diretamente com o hardware e com isso eacuteinfluenciado diretamente pela evoluccedilatildeo do mesmo Portanto a evoluccedilatildeo dos sistemas

operacionais estaacute em grande parte relacionada ao desenvolvimento de equipamentos cada vez

mais velozes compactos e de custos baixos e agrave necessidade de aproveitamento e controle

destes recursos

Assim ao falar sobre o histoacuterico dos sistemas operacionais estaremos recordando um

pouco a evoluccedilatildeo do hardware Devemos lembrar que as datas das fases da evoluccedilatildeo satildeo

aproximadasHISTOacuteRIA

Desde os tempos do computador programado por chaves e cabos ateacute o surgimento do

teclado e impressora de caracteres procurou-se ao longo do processo evolutivo do computador

tornar a sua utilizaccedilatildeo mais amigaacutevel precisa raacutepida e eficaz

Primeira geraccedilatildeo (1945-1955)

Vaacutelvulas e Paineacuteis de Programaccedilatildeo - No iniacutecio da Segunda Guerra Mundial surgiram os primeiros

computadores digitais formados por milhares de vaacutelvulas que ocupavam aacutereas enormes sendo

de funcionamento lento e duvidoso O ENIAC foi o primeiro computador digital de propoacutesito geral

Criado para a realizaccedilatildeo de caacutelculos baliacutesticos A programaccedilatildeo era feita em paineacuteis atraveacutes de

fios utilizando linguagem de maacutequina Natildeo existia o conceito de sistema operacional Outros

computadores foram construiacutedos nessa eacutepoca mas eram utilizados apenas em universidades e

oacutergatildeos militares

SEGUNDA GERACcedilAtildeO (1956-1965)

Transistores e Sistemas em Lote (batch)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1365

13

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

A criaccedilatildeo do transistor e das memoacuterias magneacuteticas contribuiu para o enorme avanccedilo dos

computadores da eacutepoca O transistor permitiu o aumento da velocidade e da confiabilidade do

processamento as memoacuterias magneacuteticas permitiram o acesso mais raacutepido aos dados maior

capacidade de armazenamento e computadores menores

Surgiram os primeiros sistemas operacionais para tentar automatizar as tarefas manuais

ateacute entatildeo realizadas e as primeiras linguagens de programaccedilatildeo como Assembly e Fortran Os

programas deixaram de ser feitos diretamente no hardware o que facilitou enormemente o

processo de desenvolvimento de programas Surgiu o processamento em batch em que um lote

(batch) de programas e de dados era submetido ao computador por vez

Terceira geraccedilatildeo (1966-1980)

Circuitos Integrados e Multiprogramaccedilatildeo

Por meio dos circuitos integrados e posteriormente dos microprocessadores foi possiacutevelviabilizar e difundir o uso de sistemas computacionais por empresas devido agrave diminuiccedilatildeo de seus

custos de aquisiccedilatildeo Houve um aumento no poder de processamento e diminuiccedilatildeo no tamanho

dos equipamentos

A evoluccedilatildeo dos processadores de entradasaiacuteda permitiu que enquanto um programa

esperasse por uma operaccedilatildeo de leituragravaccedilatildeo o processador executasse um outro programa

Para tal a memoacuteria foi dividida em particcedilotildees em que um programa esperava sua vez para ser

processado A essa teacutecnica de compartilhamento da memoacuteria principal e processador deu-se onome de multiprogramaccedilatildeo

QUARTA GERACcedilAtildeO (1981-1990)

Computadores Pessoais

Os mini e superminicomputadores se firmaram no mercado e os microcomputadores

ganharam um grande impulso Surgem as estaccedilotildees de trabalho (workstations) que apesar de

monousuaacuterias permitem que se executem diversas tarefas concorrentemente criando o conceito

de multitarefa

No final dos anos 80 os computadores tiveram um grande avanccedilo decorrente de aplicaccedilotildees que

exigiam um enorme volume de caacutelculos Para acelerar o processamento foram adicionados

outros processadores exigindo dos sistemas operacionais novos mecanismos de controle e

sincronismo Com o multiprocessamento foi possiacutevel a execuccedilatildeo de mais de um programa

simultaneamente ou ateacute de um mesmo programa por mais de um processador Foram

introduzidos processadores vetoriais e teacutecnicas de paralelismo de processamento fazendo com

que os computadores se tornassem ainda mais poderosos

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1465

14

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O uso das redes distribuiacutedas se difundiu por todo o mundo permitindo o acesso a outros

sistemas de computaccedilatildeo independentemente de cidade paiacutes e ateacute mesmo fabricante Os

softwares de rede passaram a estar intimamente relacionados com o sistema operacional de cada

maacutequina e surgem os sistemas operacionais de rede

QUINTA GERACcedilAtildeO (1991ATUALMENTE)

Houve grandes avanccedilos em termos de hardware software e telecomunicaccedilotildees como

consequecircncia da evoluccedilatildeo das aplicaccedilotildees que necessitavam cada vez mais de capacidade de

processamento e armazenamento de dados Sistemas especialistas sistemas multimiacutedia bancos

de dados distribuiacutedos inteligecircncia artificial e redes neurais satildeo apenas alguns exemplos da

necessidade cada vez maior de informaccedilatildeo e de capacidade de processamento O conceito de

processamento distribuiacutedo eacute explorado nos sistemas operacionais de forma que suas funccedilotildees

estejam espalhadas por vaacuterios processadores atraveacutes de redes de computadores A deacutecada de 90 foi definitiva para a consolidaccedilatildeo dos sistemas operacionais baseados em

interfaces graacuteficas

Atualmente temos as plataformas multicore (vaacuterios nuacutecleos) disponiacuteveis em computadores

pessoais e ateacute notebooks possibilitando cada vez mais a paralelizaccedilatildeo de aplicaccedilotildees e elevando

em muito o tempo de execuccedilatildeo dos programas Os fanaacuteticos pelos jogos de computador que o

digam

Os sistemas operacionais - satildeo parte fundamental dos computadores satildeo responsaacuteveis pororganizar os processos (programas) que estatildeo sendo executados pelo processador criando uma

fila de processos que garante que todos receberatildeo sua parcela de processamento

Para Fixar

Escreva um breve resumo sobre o processo evolutivo dos Softwares

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________ __________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1565

15

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

PRINCIacutePAIS SISTEMAS OPERACIONAIS

Principais SO que deram iniacutecio a era Windows MCs Linux e Unix

1987 ndash Andrew Tanenbaum um professor de computaccedilatildeo holandecircs desenvolve um sistema

operacional didaacutetico simplificado mas respeitando a API do UNIX que foi batizado como Minix

1987 ndash IBM e Microsoft apresentam a primeira versatildeo do OS2 um sistema multitarefa destinado

a substituir o MS-DOS e o Windows Mais tarde as duas empresas rompem a parceria a IBM

continua no OS2 e a Microsoft investe no ambiente Windows

1991 ndash Linus Torvalds um estudante de graduaccedilatildeo Finlandecircs inicia o desenvolvimento do Linux

lanccedilando na rede Usenet o nuacutecleo 001 logo abraccedilado por centenas de programadores ao redor

do mundo

1993 ndash a Microsoft lanccedila o Windows NT o primeiro sistema 32 bits da empresa

Capiacutetulo 2 ndash Banco de Dados

Banco de dados eacute um arquivo especial que armazena dados arrumados sob forma de

tabelas ou matrizes (em linhas e colunas) Quando um conjunto de informaccedilotildees possui muitasvariaacuteveis interligadas entre si eacute aconselhaacutevel que sejam armazenadas e trabalhadas em um

banco de dados Os bancos de dados fornecem uma seacuterie de funcionalidades que natildeo satildeo

encontradas em arquivos comuns ldquoBancos de dados satildeo coleccedilotildees de informaccedilotildees que se

relacionam de forma que crie um sentidordquo Satildeo de vital importacircncia para empresas e haacute duas

deacutecadas se tornaram a principal peccedila dos sistemas de informaccedilatildeo ldquoFonte Wikipeacutediardquo

Entatildeo um banco de dados eacute uma entidade na qual eacute possiacutevel armazenar dados de maneira

estruturada e com a menor redundacircncia possiacutevel Estes dados devem poder ser utilizadas porprogramas por usuaacuterios diferentes Assim a noccedilatildeo baacutesica de dados eacute acoplada geralmente a

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1665

16

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

uma rede a fim de poder pocircr conjuntamente estas informaccedilotildees daiacute o nome banco Fala-se

geralmente de sistema de informaccedilatildeo para designar toda a estrutura que reuacutene os meios

organizados para poder compartilhar dados

DADOS amp INFORMACcedilOtildeES

Muitos consideram dados e informaccedilotildees como palavras sinocircnimas mas na verdade natildeo satildeo

Para entender o que eacute um banco de dados eacute muito importante saber a diferenccedila entre essas duas

palavras

Dados satildeo fatos brutos em sua forma primaacuteria E muitas vezes os dados podem natildeo fazer

sentido sozinhos

Informaccedilotildees consistem no agrupamento de dados de forma organizada para fazer sentido

gerar conhecimento

Por exemplo o nuacutemero 2001 isoladamente faz algum sentido Natildeo Isso eacute um dado E se eu

dissesse ldquoAno do atentado terrorista agraves torres gecircmeas 2001Prime Agora faz sentido Isso eacute

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1765

17

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

uma informaccedilatildeo Um banco de dados eacute uma estrutura de dados organizada que permite a

extraccedilatildeo de informaccedilotildees

Metadados ndash Eacute todo dado relativo a outro dado eacute chamado de metadados No exemplo anterior

do ano 2001 o dado ldquoAno do atentado terrorista agraves torres gecircmeasrdquo eacute um metadado pois ele eacute um

dado sobre o dado ldquo2001rdquo Outro exemplo mais comum em banco de dados o campo telefone da

tabela cliente tem entre outros os seguinte metadados nome (telefone) tipo (texto) tamanho (30

caracteres) obrigatoriedade (natildeo) etc

Um banco de dados eacute formado por dado e metadados Sem os metadados natildeo seria

possiacutevel organizar e extrair informaccedilotildees de um banco de dados

Para Fixar

Dados - Em informaacutetica designa-se por dados os elementos de partida que servem de base

para o tratamento e sobre os quais o computador efetua as operaccedilotildees necessaacuterias agrave tarefa emquestatildeo

Os dados satildeo uma representaccedilatildeo dos fatos conceitos ou instruccedilotildees de uma maneira

normalizada que se adapte agrave comunicaccedilatildeo interpretaccedilatildeo e processamento pelo ser humano ou

atraveacutes de maacutequinas automaacuteticas

Os dados satildeo representados por siacutembolos como por exemplo as letras do alfabeto a b c

etc mas natildeo satildeo em si a informaccedilatildeo desejada

ExemploO I O C O M B - satildeo dados mas natildeo eacute informaccedilatildeo perceptiacutevel ao homem

A informaccedilatildeo natildeo eacute mais do que dados organizados e ordenados de forma uacutetil Isto eacute informaccedilatildeo

eacute o conhecimento produzido como resultado do processamento de dados

Se processarmos os dados que tiacutenhamos anteriormente entatildeo obtemos a informaccedilatildeo

O I O C O M B - Dados

- Processamento

C O M B O I O ndash Informaccedilatildeo

Para fixar

Escreva o significado de

Dados___________________________________________________________________

_________________________________________________________________________

Informaccedilatildeo_______________________________________________________________

_________________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1865

18

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Metadados_______________________________________________________________

_________________________________________________________________________

Banco de

dados___________________________________________________________________

_________________________________________________________________________

A histoacuteria dos bancos de dados

Hoje os bancos de dados satildeo essenciais para muitas empresas e estatildeo no coraccedilatildeo de

muitos sistemas computacionais Ter acesso raacutepido agraves informaccedilotildees eacute muito importante para a

correta tomada de decisotildees em um negoacutecio Se vocecirc pretende trabalhar com desenvolvimento de

softwares com certeza precisaraacute trabalhar com bancos de dados em algum momento Conhecer

a histoacuteria dos bancos de dados e como eles evoluiacuteram eacute muito importante para entender como os

bancos de dados mais comuns satildeo organizados Entatildeo como aconteceu a evoluccedilatildeo dos bancos

de dados

Antigamente as empresas armazenavam dados em fichas de papel que eram organizadas

em arquivos fiacutesicos atraveacutes de pastas Extrair informaccedilotildees e manter esses arquivos organizados

era uma tarefa muito custosa Aleacutem disso o acesso agrave informaccedilatildeo dependia da localizaccedilatildeo

geograacutefica dos arquivos Enfim esses arquivos fiacutesicos evoluiacuteram para arquivos digitais No iniacutecio

cada entidade (clientes funcionaacuterios produtos etc) era um arquivo de dados que eram

acompanhados de um ldquosoftware simplesrdquo para manipular os dados do arquivo esses softwares

permitiam realizar operaccedilotildees de cadastro alteraccedilatildeo exclusatildeo e consulta nos arquivos digitais De

fato melhorou bastante principalmente a tarefa de consulta de informaccedilotildees poreacutem os arquivos

digitais eram ainda uma versatildeo melhorada dos arquivos fiacutesicos

Mas as entidades precisavam relacionar-se por exemplo um produto eacute fornecido por

um fornecedor e com os arquivos digitais relacionaacute-las natildeo era uma tarefa muito trivial os

ldquosoftwares simplesrdquo para manipular os arquivos digitais comeccedilaram a ficar ldquocomplexosrdquo para

permitir os relacionamentos entre entidades Entatildeo na deacutecada de 60 a empresa IBM investiu

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1965

19

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

fortemente em pesquisas para solucionar estes problemas dos bancos de dados digitais

primitivos Vaacuterios modelos de bancos de dados surgiram nesta eacutepoca dentre eles os modelos

hieraacuterquicos e rede

Em junho de 1970 o pesquisador Edgar Frank ldquoTedrdquo Codd da IBM mudou a histoacuteria dos

bancos de dados apresentando o modelo relacional no artigo intitulado ldquoA Relational Model of

Data for Large Shared Data Banksrdquo (Um modelo relacional de dados para grandes bancos de

dados compartilhados) onde o autor apresentou uma forma de usuaacuterios sem conhecimento

teacutecnico armazenarem e extraiacuterem grandes quantidades de informaccedilotildees de um banco de dados

Esse artigo foi o grande impulso para a evoluccedilatildeo dos bancos de dados a partir do artigo de ldquoTedrdquo

Codd que os cientistas aprofundaram a ideia de criar o modelo de banco de dados relacional

BANCO DE DADOS RELACIONAL

Apesar de ter sido o marco dos bancos de dados relacionais o artigo de Codd natildeo foimuito explorado no iniacutecio Soacute no final da deacutecada de 70 que foi desenvolvido um sistema baseado

nas ideias do cientista o ldquoSistema Rrdquo Junto com esse sistema foi criado a linguagem de consulta

estruturada (SQL ndash Structured Query Language) que se tornou a linguagem padratildeo para bancos

de dados relacionais Embora tenha contribuiacutedo para a evoluccedilatildeo dos bancos de dados

relacionais o ldquoSystem Rrdquo natildeo foi muito bem sucedido comercialmente mas os sistemas de banco

de dados seguintes foram baseados nele

Nos anos 80 surgiram outros bancos de dados a Oracle apresentou o Oracle 2 e a IBMo SQLDS (que se tornou DB2) ambos sistemas comerciais de bancos de dados Na sequencia

vieram SQL Server MySQL DBase III Paradox etchellip

BANCOS DE DADOS HOJE

Atualmente existem vaacuterios modelos de bancos de dados tais como orientado a objetos

orientado a documentos etc Mas o mais comum ainda eacute o banco de dados relacional A decisatildeo

entre qual modelo de banco de dados utilizarem baseia-se no tipo de dados que vocecirc pretende

armazenar Por exemplo se vocecirc for armazenar uma grande quantidade de dados em um modelo

pequeno (imagine um banco de dados para o twitter) eacute mais indicado utilizar um banco de dados

orientado a documentos a um banco de dados relacional Muitas questotildees envolvem essa

decisatildeo mas natildeo eacute uma questatildeo de superioridade entre uma ou outra tecnologia todas tecircm proacutes

e contras e satildeo mais indicadas ou natildeo para cada problema

Para fixar

Faccedila um breve resumo sobre o surgimos dos bancos de dados

______________________________________________________________________________

______________________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2065

20

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

Dados amp Informaccedilatildeo

A informaccedilatildeo eacute encarada atualmente como um dos recursos mais importantes de uma

organizaccedilatildeo contribuindo decisivamente para a sua maior ou menor competitividade De fato

com o aumento da concorrecircncia tornou-se vital melhorar as capacidades de decisatildeo a todos osniacuteveis

Hoje mais que nunca a tomada de decisatildeo nas organizaccedilotildees eacute um processo complexo

dada a qualidade de informaccedilatildeo em jogo a sua complexidade e a frequecircncia com que se altera

No entanto para que possa ser utilizada com um apoio eficaz agrave tomada de decisatildeo a informaccedilatildeo

soacute tecircm valor se verificarem simultaneamente algumas condiccedilotildees

ATUALIDADE ndash O valor da informaccedilatildeo dependeraacute em grande parte da sua atualidade

Dado o dinamismo verificado em todos os setores da sociedade em geral e do ambiente

empresarial em particular o periacuteodo de validade da informaccedilatildeo eacute cada vez mais curto Torna-se

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2165

21

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

necessaacuterio dispor de fontes de informaccedilatildeo que acompanhem continuamente essas modificaccedilotildees

Soacute com base em informaccedilatildeo atualizada se podem tomar decisotildees acertadas

CORRECcedilAtildeO ndash Natildeo basta que a informaccedilatildeo seja atual eacute tambeacutem necessaacuterio que na

medida do possiacutevel seja rigorosa Soacute com informaccedilatildeo correta se pode decidir com confianccedila

RELEVAcircNCIA ndash Dado o grande de volume de informaccedilatildeo envolvida o processo de tomada

de decisatildeo ao contraacuterio de ser facilitado pode ser dificultado pelo excesso de informaccedilatildeo A

informaccedilatildeo deve ser devidamente filtrada de tal forma que apenas aquela com relevacircncia para

cada situaccedilatildeo seja considerada

DISPONIBILIDADE ndash Ainda que a informaccedilatildeo verifique os trecircs requisitos anteriores a sua

utilidades poderaacute ser posta em causa se natildeo puder ser disponibilizada de forma imediata no

momento em que eacute solicitada As decisotildees muito ponderadas com o longo periacuteodo de gestaccedilatildeo

satildeo cada vez mais situaccedilotildees do passado Hoje dadas as caracteriacutesticas do meio envolvente oprocesso de tomada de decisatildeo tem que ser quase instantacircneo Para isso a informaccedilatildeo tem que

ser disponibilizada rapidamente caso contraacuterio deixa de ser uacutetil

LEGIBILIDADE - Esta condiccedilatildeo apesar de apresentada em uacuteltimo lugar natildeo eacute por isso

menos importante A informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada

De fato de nada vale que a informaccedilatildeo seja atual precisa relevante e disponibilizada em

tempo oportuno se natildeo puder ser entendida A forma como eacute disponibilizada tem tambeacutem grande

importacircncia informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada A forma como eacutedisponibilizada tem tambeacutem grande importacircncia

Quanto aos requisitos de atualidade e correccedilatildeo da informaccedilatildeo para que esta possa ser

correta e atual os dados de onde eacute derivada tecircm forccedilosamente que ser precisos e atualizados

Quanto aos requisitos de relevacircncia disponibilidade e legibilidade da informaccedilatildeo estes tecircm mais

a ver com os meios utilizados para o processamento dos dados

Como eacute que a informaccedilatildeo eacute organizada

A organizaccedilatildeo da informaccedilatildeo eacute efetuada de acordo com criteacuterios distintos como

Hierarquia dos seus componentes

O tipo de assunto a que se refere

Forma de armazenamento

Quanto agrave HIERARQUIA DOS COMPONENTES DA INFORMACcedilAtildeO esta eacute organizada em

Caracteres Campos Registros Ficheiros Caracteres - podem ser numeacutericos alfabeacuteticos ou

sinais de pontuaccedilatildeo Campos - satildeo conjuntos de caracteres que identificam um componente de

um registo Registos - satildeo agrupamentos de campos descritivos de uma realidade Ficheiros - satildeo

conjuntos de registos cuja informaccedilatildeo eacute estruturalmente analoacutegica

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2265

22

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Quanto AO TIPO DE ASSUNTO a que se refere agrave informaccedilatildeo

Esta pode ser como que etiquetada de modo a tornar faacutecil a sua procura e a evitar perdas

de tempo

Quando a informaccedilatildeo estaacute armazenada em ficheiros estes indicam o seu tipo atraveacutes de

uma extensatildeo ao nome do ficheiro

Algumas das extensotildees mais comuns satildeo

- COM ficheiro de comandos - BACK backup ou coacutepias de seguranccedila- EXE executaacuteveis - SYS ficheiros de sistema

- BAT processamento batch - XLS folha de caacutelculo provenientes do Excel

- TXT texto no formato ASCII - PPT apresentaccedilotildees provenientes do PowerPoint

- PAS programas em Linguagem Pascal - MBD base de dados provenientes do Access

- C programas em Linguagem C - DOC documentos provenientes de um processador de

texto

Quanto Agrave FORMA DE ARMAZENAMENTO da informaccedilatildeoRelativamente ao armazenamento por exemplo no disco riacutegido do computador a

informaccedilatildeo eacute organizada em diretorias cujo nome revela o tipo de ficheiros que aiacute se encontram

podendo cada diretorias conter diversas subdiretorias

Organizaccedilatildeo dos dados num Computador

Os dados que fornecemos a um computador para processar podem ser de trecircs tipos

quantitativos classificativos referenciais

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2365

23

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Dados quantitativos - satildeo os que exprimem quantidades e por isso normalmente servem

de base para caacutelculos aritmeacuteticos Exemplo a ficha escolar as notas do periacuteodo as faltas o total

das faltas

bull Dados classificativos - satildeo os que descrevem ou especificam os elementos envolvidos e

quantificados Normalmente servem de complemento aos dados quantitativos identificando

pessoas objetos situaccedilotildees etc Natildeo servem portanto para elementos de caacutelculo Exemplo a

ficha escolar o nome do aluno o nome da disciplina o nome do professor

bull Dados referenciais - satildeo dados que permitem controlar e referenciar os elementos

tratados Exemplo a ficha escolar o ano letivo o nuacutemero do aluno a turma

Para fixar

Escreva de forma resumida como podemos organizar os dados

_________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

Tipos de Operaccedilotildees realizadas sobre os dados

O tipo de operaccedilotildees efetuadas depende dos objetivos do processamento e igualmente dostipos de dados nele envolvidos pois o computador pode processar dados numeacutericos ou natildeo

numeacutericos Assim temos como operaccedilotildees possiacuteveis num processamento

bull Operaccedilotildees aritmeacuteticas - satildeo efetuadas apenas sobre dados numeacutericos e satildeo

basicamente constituiacutedas por somas subtraccedilotildees multiplicaccedilotildees divisotildees e outras similares

bull Operaccedilotildees loacutegicas - satildeo efetuadas sobre dados numeacutericos ou natildeo numeacutericos Estas

operaccedilotildees satildeo tambeacutem por vezes designadas por operaccedilotildees de comparaccedilatildeo

bull Operaccedilotildees de movimentaccedilatildeo interna - satildeo efetuadas sobre qualquer tipo de dados e

consistem na coacutepia e mudanccedila de localizaccedilatildeo interna dos dados na memoacuteria do computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2465

24

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Operaccedilatildeo de InputOutput - satildeo as operaccedilotildees que envolvem os oacutergatildeos de entrada e

saiacuteda permitindo a comunicaccedilatildeo entre o operador e a maacutequina

Funccedilotildees do processamento de dados

Considera-se como processamento de dados o conjunto de todas as operaccedilotildees efetuadas desde

a entrada dos dados ateacute agrave saiacuteda da informaccedilatildeo Todas estas operaccedilotildees de vaacuterios tipos satildeo

normalmente associadas a seis funccedilotildees do processamento de dados input ordenaccedilatildeo

processamento armazenamento output e controle

bull Input - fase de seleccedilatildeo e aquisiccedilatildeo dos dados pelo computador

bull Ordenaccedilatildeo - esta eacute uma funccedilatildeo auxiliar O seu objetivo eacute dispor os dados de uma forma

organizada (ordenada) de modo a facilitar o seu tratamento Se os dados se mantiverem

ordenados segundo um determinado criteacuterio preacute-definido a sua pesquisa eacute mais faacutecil o que faz

aumentar a velocidade do processamento

bull Processamento - considera-se processamento ao conjunto de todas as operaccedilotildees

efetuadas internamente pelo computador na manipulaccedilatildeo dos dados

bull Armazenamento - esta eacute uma funccedilatildeo muito importante que permite posteriormente

analisar as etapas e os resultados do processamento

bull Output - eacute a obtenccedilatildeo de resultados sob a forma de informaccedilatildeo significativa para as

pessoas a quem se destina

bull Controle - a sua finalidade eacute detectar corrigir e eliminar possiacuteveis erros ou afastamentosem relaccedilatildeo aos objetivos inicialmente traccedilados

Utilidade de um banco de dados

Um banco de dados permite pocircr dados agrave disposiccedilatildeo de usuaacuterios para uma consulta uma

introduccedilatildeo ou uma atualizaccedilatildeo assegurando-se dos direitos atribuiacutedos a estes uacuteltimos Isso eacute

ainda mais uacutetil quando os dados informaacuteticos satildeo cada vez mais numerosos

Um banco de dados pode ser local quer dizer utilizaacutevel em uma maacutequina por um usuaacuterio

ou repartida quer dizer que as informaccedilotildees satildeo armazenadas em maacutequinas distantes eacessiacuteveis por rede A vantagem essencial da utilizaccedilatildeo dos bancos de dados eacute a possibilidade

de poder ser acessada por vaacuterios usuaacuterios simultaneamente

A gestatildeo dos bancos de dados

A fim de poder controlar os dados bem como os usuaacuterios a necessidade de um sistema de

gestatildeo fez-se sentir rapidamente A gestatildeo do banco de dados faz-se graccedilas a um sistema

chamado SGBD (sistema de gestatildeo de bancos de dados) ou em inglecircs DBMS (Database

managment system) O SGBD eacute um conjunto de serviccedilos (aplicaccedilotildees software) que permitem

gerenciar os bancos de dados quer dizer

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2565

25

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Permitir o acesso aos dados de maneira simples

Autorizar um acesso agraves informaccedilotildees a muacuteltiplos usuaacuterios

Manipular os dados presentes no banco de dados (inserccedilatildeo supressatildeo modificaccedilatildeo)

O SGBD pode decompor-se em trecircs subsistemas

O sistema de gestatildeo de arquivos permite o armazenamento das informaccedilotildees num suporte

fiacutesico

O SGBD interno gerencia a emissatildeo das informaccedilotildees

O SGBD externo representa a interface com o usuaacuterio

Bancos de dados satildeo conjuntos de dados com uma estrutura regular que organizam

informaccedilatildeo Um banco de dados normalmente agrupa informaccedilotildees utilizadas para um mesmo fim

O modelo de dados mais adotado hoje em dia eacute o modelo relacional onde as estruturas

tecircm a forma de tabelas compostas por linhas e colunas

Resumindo um banco de dados eacute uma coleccedilatildeo de dados relacionados Entende-se por

dado toda a informaccedilatildeo que pode ser armazenada e que apresenta algum significado impliacutecito

dentro do contexto ao qual ele se aplica Por exemplo num sistema bancaacuterio uma pessoa eacuteidentificada pelo seu cpf(cliente) Em um sistema escolar a pessoa eacute identificada pelo seu nuacutemero

de matriacutecula(aluno) Aleacutem disso os dados que seratildeo armazenados em cada situaccedilatildeo podem

diferir consideravelmente

Atividades

1) Onde utilizar um banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2665

26

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2) Como funciona um sistema gerenciador de banco de dados

3) Como funciona o modelo relacional

Modelo Relacional

O modelo relacional eacute uma teoria matemaacutetica desenvolvida por Edgar Frank Codd para

descrever como as bases de dados devem funcionar Embora esta teoria seja a base para o

software de bases de dados relacionais muito poucos sistemas de gestatildeo de bases de dados

seguem o modelo de forma restrita e todos tecircm funcionalidades que violam a teoria desta forma

variando a complexidade e o poder A discussatildeo se esses bancos de dados merecem ser

chamados de relacional ficou esgotada com tempo com a evoluccedilatildeo dos bancos existentes

De acordo com a arquitetura ANSI SPARC em trecircs niacuteveis os Bancos de dados

relacionais consistem de trecircs componentes

bull uma coleccedilatildeo de estruturas de dados formalmente chamadas de relaccedilotildees ou

informalmente tabelas compondo o niacutevel conceitual

bull uma coleccedilatildeo dos operadores a aacutelgebra e o caacutelculo relacionais que constituem a base da

linguagem SQL

bull uma coleccedilatildeo de restriccedilotildees da integridade definindo o conjunto consistente de estados de

base de dados e de alteraccedilotildees de estados As restriccedilotildees de integridade podem ser de quatro

tipos

bull domiacutenio (ou tipo de dados) bull atributo

bull restriccedilotildees de base de dados

De acordo com o Princiacutepio de Informaccedilatildeo toda informaccedilatildeo tem de ser representada como dados

qualquer tipo de atributo representa relaccedilotildees entre conjuntos de dados

Nos bancos de dados relacionais os relacionamentos entre as tabelas natildeo satildeo codificados

explicitamente na sua definiccedilatildeo Em vez disso se fazem implicitamente pela presenccedila de

atributos chave As bases de dados relacionais permitem aos utilizadores (incluindo

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2765

27

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

programadores) escreverem consultas (queries) reorganizando e utilizando os dados de forma

flexiacutevel e natildeo necessariamente antecipada pelos projetistas originais

Esta flexibilidade eacute especialmente importante em bases de dados que podem ser utilizadas

durante deacutecadas tornando as bases de dados relacionais muito populares no meio comercial

Um dos pontos fortes do modelo relacional de banco de dados eacute a possibilidade de

definiccedilatildeo de um conjunto de restriccedilotildees de integridade Estas definem os conjuntos de estados e

mudanccedilas de estado consistentes do banco de dados determinando os valores que podem e os

que natildeo podem ser armazenados

Aplicaccedilotildees de bancos de dados

Bancos de dados satildeo usados em muitas aplicaccedilotildees enquanto atravessando virtualmente a

gama inteira de software de computador Bancos de dados eacute o meacutetodo preferido de

armazenamento para aplicaccedilotildees multiusuaacuterias grandes onde a coordenaccedilatildeo entre muitosusuaacuterios eacute necessaacuteria Ateacute mesmo usuaacuterios individuais os acham convenientes entretanto e

muitos programas de correio eletrocircnico e os organizadores pessoais estatildeo baseados em

tecnologia de banco de dados standard

Aplicativo de Banco de Dados

Um aplicativo de banco de dados eacute um tipo de software exclusivo para gerenciar um banco

de dados Aplicativos de banco de dados abrangem uma vasta variedade de necessidades e

objetivos de pequenas ferramentas como uma agenda ateacute complexos sistemas empresariaispara desempenhar tarefas como a contabilidade

O termo Aplicativo de Banco de dados usualmente se refere a softwares que oferecem

uma interface para o banco de dados Exemplos de aplicativos de banco de dados satildeo Microsoft

Visual FoxPro Microsoft Access dBASE FileMaker (em certa medida) HyperCard MySQL

PostgreSQL Microsoft SQL Server e Oracle

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2865

28

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Capiacutetulo 3 - HARDWARE E SOFTWARE

O QUE Eacute O HARDWARE

No acircmbito da informaacutetica eacute dada a designaccedilatildeo de hardware a todos os componentes

fiacutesicos que fazem parte de um sistema informaacutetico incluiacutedo toda a parte fiacutesica de um computador

(nomeadamente os processadores motherbord disco riacutegido placas de som placas de viacutedeo

memoacuterias etc) e todos os perifeacutericos (tais como teclados mouse monitores impressoras

scanners modems entre outros)

Peccedilas de um computador

Se vocecirc usa um computador desktop jaacute deve saber que natildeo existe uma parte uacutenica

chamada computador Um computador eacute na verdade um sistema de muitas partes funcionando

em conjunto As partes fiacutesicas que vocecirc pode ver e tocar satildeo denominadas

coletivamente hardware (O software por outro lado se refere agraves instruccedilotildees ou programas que

dizem ao hardware o que fazer)

A ilustraccedilatildeo a seguir mostra os dispositivos de hardware mais comuns em um sistema de

computador desktop Seu sistema pode ter uma aparecircncia um pouco diferente mas

provavelmente possui a maioria destas peccedilas Um computador laptop possui peccedilas semelhantes

mas as combina em um uacutenico pacote do tamanho de um caderno

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2965

29

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Sistema de computador desktop

Unidade de sistema

A unidade de sistema (Gabinete) eacute o nuacutecleo de um sistema de computador Normalmente

eacute uma caixa retangular colocada sobre a mesa ou embaixo dela Dentro dessa caixa estatildeo os

componentes eletrocircnicos que processam as informaccedilotildees O mais importante desses

componentes eacute a CPU (unidade de processamento central) ou microprocessador que atua como

o ceacuterebro do computador Outro componente eacute a memoacuteria RAM que armazena

temporariamente informaccedilotildees utilizadas pela CPU enquanto o computador estaacute ligado As

informaccedilotildees gravadas na RAM satildeo apagadas quando o computador eacute desligado

Quase todas as outras partes do computador se conectam agrave unidade de sistema por meio

de cabos Os cabos satildeo conectados aportas (aberturas) especiacuteficas geralmente na parte traseira

da unidade de sistema O hardware que natildeo faz parte da unidade de sistema eacute

chamado dispositivo perifeacuterico ou simplesmente dispositivo

Unidade de sistema

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3065

30

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Armazenamento

O computador possui uma ou mais unidades de disco ou seja dispositivos que armazenam

informaccedilotildees em um disco de plaacutestico ou de metal O disco preserva as informaccedilotildees mesmo

quando o computador estaacute desligado

Unidade de disco riacutegido

A unidade de disco riacutegido do computador armazena informaccedilotildees em um disco riacutegido que eacute um

prato riacutegido ou pilha de pratos com uma superfiacutecie magneacutetica Como os discos riacutegidos podem

reter uma grande quantidade de informaccedilotildees normalmente eles funcionam como principal meio

de armazenamento do computador guardando praticamente todos os programas e arquivos Em

geral a unidade de disco riacutegido fica localizada dentro da unidade de sistema

Unidade de disco riacutegidoUnidades de CD e DVD

Hoje em dia quase todos os computadores vecircm equipados com uma unidade de CD ou DVD

geralmente localizada na frente da unidade de sistema As unidades de CD usam lasers para ler

(recuperar) dados de um CD Muitas delas tambeacutem podem gravar dados em CDs Se vocecirc tiver

uma unidade de disco gravaacutevel poderaacute armazenar coacutepias de seus arquivos em CDs vazios A

unidade de CD tambeacutem serve para tocar CDs de muacutesica no computador

CD

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3165

31

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

As unidades de DVD fazem o mesmo que as unidades de CD e tambeacutem lecircem DVDs Se vocecirc

tiver uma unidade de DVD poderaacute ver filmes no computador Muitas unidades de DVD podem

gravar dados em DVDs vazios

Dica

Se vocecirc tiver uma unidade de CD ou DVD gravaacutevel faccedila backup (copie) periodicamente de seus

arquivos importantes em CDs ou DVDs Dessa forma caso venha a ocorrer alguma falha no disco

riacutegido vocecirc natildeo perderaacute os dados

Unidade de disquete

As unidades de disquete armazenam informaccedilotildees em discos tambeacutem chamados discos

flexiacuteveis ou disquetes Comparado a CDs e DVDs os disquetes podem armazenar apenas uma

pequena quantidade de dados Eles tambeacutem recuperam informaccedilotildees de forma mais lenta e satildeo

mais vulneraacuteveis a danos Por esses motivos as unidades de disquete satildeo cada vez menosusadas embora ainda sejam incluiacutedas em alguns computadores

Disquete

Por que estes discos satildeo chamados de disquetes Apesar de a parte externa ser composta de

plaacutestico riacutegido isso eacute apenas a capa O interior do disco eacute feito de um material de vinil fino e

flexiacutevel

Mouse

Mouse eacute um pequeno dispositivo usado para apontar e selecionar itens na tela do computador

Embora existam mouses de vaacuterias formas o modelo mais comum se assemelha a um rato (como

diz o nome em inglecircs) Ele eacute pequeno e alongado sendo conectado agrave unidade de sistema por um

cabo comprido que faz lembrar uma cauda Alguns mouses mais novos satildeo sem fio

Mouse

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3265

32

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O mouse geralmente possui dois bototildees um botatildeo principal (normalmente o da esquerda) e um

botatildeo secundaacuterio Muitos mouses tambeacutem tecircm uma roda entre os dois bototildees que permite

percorrer as telas de informaccedilotildees

Ponteiros do mouse

Agrave medida que vocecirc move o mouse com a matildeo um ponteiro na tela se move na mesma direccedilatildeo

(A aparecircncia do ponteiro pode mudar dependendo da sua posiccedilatildeo na tela) Quando quiser

selecionar um item aponte para ele e clique no botatildeo principal ou seja pressione-o e solte-o

Apontar e clicar com o mouse eacute a principal maneira de interagir com o computador Para mais

informaccedilotildees consulte Usando o mouse

Teclado

A finalidade principal do teclado eacute digitar texto no computador Ele possui teclas para letras e

nuacutemeros exatamente como em uma maacutequina de escrever A diferenccedila estaacute nas teclas especiais

As teclas de funccedilatildeo localizadas na linha superior executam funccedilotildees diferentes dependendo

de onde satildeo usadas

O teclado numeacuterico localizado agrave direita na maioria dos teclados permite inserir nuacutemeros

rapidamente

As teclas de navegaccedilatildeo como as teclas de seta permitem mover sua posiccedilatildeo dentro de

documentos ou paacuteginas da Web

Teclado

Vocecirc tambeacutem pode usar o teclado para executar muitas das mesmas tarefas que executa com

um mouse Para mais informaccedilotildees consulte Usando o teclado

Monitor

O monitor exibe informaccedilotildees em forma visual usando texto e elementos graacuteficos A parte do

monitor que exibe as informaccedilotildees eacute chamada tela Como a tela de uma televisatildeo a tela de um

computador pode mostrar imagens paradas ou em movimento

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3365

33

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Existem dois tipos baacutesicos de monitores CRT (tubo de raios catoacutedicos) e LCD (viacutedeo de cristal

liacutequido) Ambos produzem imagens niacutetidas mas os monitores LCD levam vantagem por serem

mais finos e mais leves

Monitor LCD (agrave esquerda) monitor CRT (agrave direita)

Impressora

Uma impressora transfere dados de um computador para o papel Vocecirc natildeo precisa de

impressora para usar o computador mas se tiver uma poderaacute imprimir emails cartotildees convites

anuacutencios e outros materiais Muitas pessoas tambeacutem preferem imprimir suas fotos em casa

Os dois principais tipos de impressora satildeo a jato de tinta e a laser As impressoras a jato de tinta

satildeo as mais populares para uso domeacutestico Elas podem imprimir em preto e branco ou em cores

e produzem fotos de alta qualidade quando usadas com papel especial As impressoras a laser

satildeo mais raacutepidas e mais adequadas para uso intenso

Impressora a jato de tinta (agrave esquerda) impressora a laser (agrave direita)

Alto-falantes

Os alto-falantes satildeo usados para tocar som Eles podem vir embutidos na unidade de sistema ou

ser conectados com cabos Satildeo eles que permitem ouvir muacutesica e efeitos de som no computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3465

34

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Alto-falantes do computador

Modem

Para conectar o computador agrave Internet vocecirc precisa de um modem um dispositivo que envia e

recebe informaccedilotildees do computador por linha telefocircnica ou cabo de alta velocidade Agraves vezes os

modems vecircm embutidos na unidade de sistema mas os de alta velocidade normalmente satildeo

componentes separados

Modem a cabo

O QUE Eacute O SOFTWARE

O Software eacute uma aplicaccedilatildeo ou programa do computador escrita numa determinadalinguagem interpretaacutevel por uma determinada maacutequina (o processador de um computador ou

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3565

35

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

outro equipamento) e que permite executar determinadas tarefas para as quais o software foi

projetado Estes programas satildeo compostos por uma sequecircncia de instruccedilotildees (os comandos) e de

declaraccedilotildees de dados as quais satildeo armazenaacuteveis num meio digital

Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por um

computador com o objetivo de executar tarefas especiacuteficas Tambeacutem pode ser definido como

os programas que comandam o funcionamento de um computador

Em um computador o software eacute classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer

instruccedilotildees para o hardware O hardware eacute toda a parte fiacutesica que constitui o computador por

exemplo a CPU a memoacuteria e os dispositivos de entrada e saiacuteda O software eacute constituiacutedo por

todos os programas que existem para um referido sistema quer sejam produzidos pelo proacuteprio

utente ou pelo fabricante do computador

O termo inglecircs software foi usado pela primeira vez em 1958 em um artigo escrito pelo cientistaamericano John Wilder Tukey Foi tambeacutem ele o responsaacutevel por introduzir o termo bit para

designar diacutegito binaacuterio

Os softwares podem ser classificados como

SOFTWARE DE SISTEMA

Geralmente dividido em SISTEMAS OPERACIONAIS e PROGRAMAS UTILITAacuteRIOS Para

comeccedilar os Sist Operacionais satildeo de grande importacircncia pois eles nos datildeo a opccedilatildeo de dizer ao

computador o que ele deve fazer Dois exemplos bastante conhecidos do nosso puacuteblico satildeoo Mac o Windows e o Linux Os Programas utilitaacuterios geralmente satildeo softwares de menor porte

com funccedilotildees mais especificas tipo Verificaccedilatildeo de Disco Coacutepias de Seguranccedila entre outros

SOFTWARE APLICATIVO

Neste tipo de software se enquadram todos aqueles programas que satildeo utilizados na execuccedilatildeo

de tarefas especiacuteficas Posso citar vaacuterios exemplos mas os mais comuns satildeo os processadores

de texto como o Word que servem para trabalhar com os mais diversos tipos de textos emitir

etiquetas e fazer formulaacuterios as planilhas eletrocircnicas como o Excel satildeo poderosas ferramentas

de caacutelculos que facilitam tanto aquele trabalho aacuterduo de matemaacutetica fazer graacuteficos com real

representaccedilatildeo dos dados eacute uma coisa muito boa pra quem precisa e por uacuteltimo o que muitos

usam mas natildeo sabem o nome ao certo que satildeo os Browsers ou Navegadores softwares usados

para navegar na Web dentre eles os mais conhecidos atualmente satildeo Windows Internet

Explorer Firefox Google Chrome Opera e Safaacuteri

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3665

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3765

37

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

hoje eles satildeo bastante usados em situaccedilotildees de treinamentos de pessoas para enfrentar casos no

seu dia-a-dia

SOFTWARE DE JOGOS

Geralmente satildeo softwares relacionados a entretenimento para proporcionar lazer e diversatildeo

Dispotildeem de muitos recursos interativos e existem de todos os tipos desde estrateacutegias ateacute

simulaccedilotildees reais de muitas coisas como corridas (Need for Speed) ateacute mesmo de vida como o

Second Life

SOFTWARES ABERTOS

Satildeo aqueles que permitem que o usuaacuterio produza com liberdade e criatividade se classificam

nessa categoria aqueles softwares de apresentaccedilotildees bancos de dados e vaacuterios outros

Para fixar

Descreva uma definiccedilatildeo para os tipos de softwares

Software de Sistema_____________________________________________________________

Software Aplicativo ______________________________________________________________

Software de Linguagem __________________________________________________________

Software abertos _______________________________________________________________

Capiacutetulo 4 - Conceitos Baacutesicos de Banco de Dados

Segundo Korth um banco de dados ldquoeacute uma coleccedilatildeo de dados inter -relacionados

representando informaccedilotildees sobre um domiacutenio especiacuteficordquo ou seja sempre que for possiacutevel

agrupar informaccedilotildees que se relacionam e tratam de um mesmo assunto posso dizer que tenho

um banco de dados

Podemos exemplificar situaccedilotildees claacutessicas como uma lista telefocircnica um cataacutelogo de CDs ou um

sistema de controle de RH de uma empresa

Jaacute um sistema de gerenciamento de banco de dados (SGBD) eacute um software que possui

recursos capazes de manipular as informaccedilotildees do banco de dados e interagir com o usuaacuterio

Exemplos de SGBDs satildeo Oracle SQL Server DB2 PostgreSQL MySQL o proacuteprio Access ouParadox entre outros

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3865

38

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Por uacuteltimo temos que conceituar um sistema de banco de dados como o conjunto de quatro

componentes baacutesicos dados hardware software e usuaacuterios Date conceituou que ldquosistema de

bancos de dados pode ser considerado como uma sala de arquivos eletrocircnicardquo A Figura 1 ilustra

os componentes de um sistema de banco de dados

Componentes de um sistema de banco de dados

Os objetivos de um sistema de banco de dados satildeo o de isolar o usuaacuterio dos detalhes

internos do banco de dados (promover a abstraccedilatildeo de dados) e promover a independecircncia dos

dados em relaccedilatildeo agraves aplicaccedilotildees ou seja tornar independente da aplicaccedilatildeo a estrateacutegia de

acesso e a forma de armazenamento

Abstraccedilatildeo de dados

O sistema de banco de dados deve garantir uma visatildeo totalmente abstrata do banco de

dados para o usuaacuterio ou seja para o usuaacuterio do banco de dados pouco importa qual unidade de

armazenamento estaacute sendo usada para guardar seus dados contanto que os mesmos estejam

disponiacuteveis no momento necessaacuterio

Esta abstraccedilatildeo se daacute em trecircs niacuteveis (Figura 2) Niacutevel de visatildeo do usuaacuterio as partes do banco de dados que o usuaacuterio tem acesso de

acordo com a necessidade individual de cada usuaacuterio ou grupo de usuaacuterios

Niacutevel conceitual define quais os dados que estatildeo armazenados e qual o relacionamento

entre eles

Niacutevel fiacutesico eacute o niacutevel mais baixo de abstraccedilatildeo em que define efetivamente de que maneira

os dados estatildeo armazenados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3965

39

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 2 Niacuteveis de abstraccedilatildeo

Projeto de banco de dados

Todo bom sistema de banco de dados deve apresentar um projeto que visa a organizaccedilatildeo das

informaccedilotildees e utilizaccedilatildeo de teacutecnicas para que o futuro sistema obtenha boa performance e

tambeacutem facilite infinitamente as manutenccedilotildees que venham a acontecer

O projeto de banco de dados se daacute em duas fases

Modelagem conceitual Projeto loacutegico

Estas duas etapas se referem a um sistema de banco de dados ainda natildeo implementado ou seja

que ainda natildeo exista um novo projeto Para os casos em que o banco de dados jaacute exista mas eacute

um sistema legado por exemplo ou um sistema muito antigo sem documentaccedilatildeo o processo de

projeto de banco de dados se daraacute atraveacutes da utilizaccedilatildeo de uma teacutecnica chamada de Engenharia

Reversa que seraacute visto em outra oportunidade

Modelo conceitual

Eacute a descriccedilatildeo do BD de maneira independente ao SGBD ou seja define quais os dados

que apareceratildeo no BD mas sem se importar com a implementaccedilatildeo que se daraacute ao BD Desta

forma haacute uma abstraccedilatildeo em niacutevel de SGBD

Uma das teacutecnicas mais utilizadas dentre os profissionais da aacuterea eacute a abordagem entidade-

relacionamento (ER) onde o modelo eacute representado graficamente atraveacutes do diagrama entidade-

relacionamento (DER) (Figura 3)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 4: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 465

4

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Vantagens do uso do computador

Para fixar

1 Escreva com suas palavras o que eacute um computador e o que eacute informaacutetica

2 Quais satildeo as vantagens de se utilizar um computador na vida profissional

3 Como vocecirc escolheria o melhor computador para atender agraves suas necessidades

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 565

5

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

A PRIMEIRA GERACcedilAtildeO (1940 ndash 1950)

O primeiro computador eletrocircnico digital foi resultado dos trabalhos de um professor de Fiacutesica da

Universidade de Iowa EUA John Vincent Atanasoff que na busca de um meio para resolver

equaccedilotildees lineares teve a ideia de combinar simultaneamente um circuito eletrocircnico com uma

memoacuteria de varredura mecacircnica usando capacitores Em sua concepccedilatildeo baacutesica o dispositivo

consistia de uma memoacuteria composta de cilindros rotativos

Provido com contatos eleacutetricos na forma de pequenos pinos de latatildeo interligados com

capacitores de papel cuja variaccedilatildeo de carga durante a operaccedilatildeo era monitorado e ajustado por

um circuito eleacutetrico Por sua vez a loacutegica do sistema era feito com 255 vaacutelvulas tipo duplo triacuteodoNo iniacutecio da segunda guerra mundial os computadores eletromecacircnicos disponiacuteveis como

o ldquoASCCrdquo - Automatic Sequence Controlled Calculator - desenvolvido pela IBM EUA jaacute natildeo eram

tatildeo raacutepidos para resolver os complicados caacutelculos baliacutesticos exigidos pelos armamentos usados

no novo tipo de guerra aeacuterea de forma que o aparelho de Atanasoff por ter uma concepccedilatildeo

diferente natildeo mais usando de multivibradores biestaacuteveis ou flip-flop poreacutem de um conceito

eletrocircnico foi agrave origem do emprego da vaacutelvula na incipiente ciecircncia da computaccedilatildeo Assim em 5

de junho de 1943 o governo americano assina um contrato com a universidade da Pensilvacircniapara desenvolver o projeto do ldquoENIACrdquo ou - Electronic Numerical Integrator and Computer

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 665

6

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ENIAC ndash PRIMEIRO COMPUTADOR

Computador integrado numeacuterico eletrocircnico foi o primeiro computador digital eletrocircnico de grandeescala O ENIAC comeccedilou a ser desenvolvido em 1946 durante a II Guerra Mundial para

computar trajetoacuterias taacuteticas que exigissem conhecimento substancial em matemaacutetica mas soacute se

tornou operacional apoacutes o final da guerra

Sua capacidade de processamento era de 5000 operaccedilotildees por segundo

Criado na segunda guerra tinha como principal finalidade caacutelculos baliacutesticos

Possuiacutea 18000 vaacutelvulas termiocircnicas de 160 kW de potecircncia

Pesava 30 Toneladas Esta maacutequina natildeo tinha sistema operacional e seu funcionamento era parecido com

uma calculadora simples de hoje O ENIAC assim como uma calculadora tinha de ser

operado manualmente

A calculadora efetua os caacutelculos a partir das teclas pressionadas fazendo interaccedilatildeo direta com o

hardware no qual era preciso conectar fios relecircs e sequecircncias de chaves para que se

determinasse a tarefa a ser executada A cada tarefa diferente o processo deveria ser refeito A

resposta era dada por uma sequecircncia de lacircmpadas A uacutenica forma de armazenar dados era

atraveacutes de cartotildees perfurados

SEGUNDA GERACcedilAtildeO DOS COMPUTADORES - (1952 - 1964)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 765

7

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Esta Geraccedilatildeo foi originada pela revoluccedilatildeo dos Transistores os quais substituiacuteram as volumosas

vaacutelvulas Houve uma enorme diminuiccedilatildeo em cabos e fios tendo em vista que cada transistor

substituiacutea dezenas de vaacutelvulas Desta maneira os computadores tornaram-se consideravelmente

menores e devido a isso muito mais velozes O computador comeccedila a ser utilizado nas grandes

empresas Projetos foram implementados baseados na utilizaccedilatildeo de transistores houve grandes

avanccedilos no que se refere agraves unidades de memoacuteria principal com a substituiccedilatildeo do sistema de

tubos de raios catoacutedicos pelo de nuacutecleos magneacuteticos (usados ateacute hoje)

A memoacuteria teve um aumento em sua capacidade de armazenamento chegando a 32K

Principais computadores IBM 1401 IBM 7094 Honeywell 800 e IBM 7090

Tanto a vaacutelvula quanto o transistor realizavam um processamento de cada vez Com o

desenvolvimento das teacutecnicas de integraccedilatildeo surgiram os Circuitos Integrados onde numa

pequena caacutepsula continha vaacuterias dezenas centenas ou milhares de transistores ocupando umaaacuterea menor que uma unha dando o nome de microprocessador (processador miniatura) A

linguagem de programaccedilatildeo foi simplificada e jaacute se podia programar atraveacutes de mnemocircnicos

(comandos abreviados) Esta linguagem denomina-se ASSEMBLER As operaccedilotildees de caacutelculos

eram realizadas em milioneacutesimos de segundos Realizando 204000 adiccedilotildeessegundos Aleacutem do

surgimento dos nuacutecleos de ferrite fitas e tambores magneacuteticos passam a ser usados como

memoacuteria

Eacute possiacutevel dividir os computadores desta geraccedilatildeo em duas grandes categoriassupercomputadores e minicomputadores

IBM 7030 tambeacutem conhecido por Strech foi o primeiro supercomputador lanccedilado na

segunda geraccedilatildeo desenvolvido pela IBM Seu tamanho era bem reduzido comparado com

maacutequinas como o ENIAC podendo ocupar somente uma sala comum Ele era utilizado por

grandes companhias custando em torno de 13 milhotildees de doacutelares na eacutepoca Esta maacutequina

executava caacutelculos na casa dos microssegundos o que permitia ateacute um milhatildeo de operaccedilotildees por

segundo Desta maneira um novo patamar de velocidade foi atingido Comparado com os da

primeira geraccedilatildeo os supercomputadores como o IBM 7030 eram mais confiaacuteveis

PDP-8 foi um dos mini-computadores mais conhecidos da segunda geraccedilatildeo Basicamente

foi uma versatildeo mais baacutesica do supercomputador sendo mais atrativo do ponto de vista financeiro

(centenas de milhotildees de doacutelares) Eram menores do que os supercomputadores mas mesmo

assim ainda ocupavam um bom espaccedilo no cocircmodo

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 865

8

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

TERCEIRA GERACcedilAtildeO DOS COMPUTADORES - (1964 - 1971)

A 3ordf Geraccedilatildeo surgiu com a utilizaccedilatildeo dos Circuitos Integrados ndash SLT (Solid Logic Technolo-

gy) uma teacutecnica de micro circuitos Nesta geraccedilatildeo os computadores podiam realizar vaacuterios

processamentos simultacircneos As teacutecnicas de integraccedilatildeo evoluiacuteram de SSI (integraccedilatildeo em

pequena escala) para MSI (integraccedilatildeo em meacutedia escala) LSI (integraccedilatildeo em grande escala) e

VLSI (integraccedilatildeo em muito grande escala) Esta classificaccedilatildeo eacute baseada na quantidade de

componentes que o integrado conteacutem A programaccedilatildeo dos computadores desta geraccedilatildeo foi

facilitada pelo aparecimento de linguagens orientadas para o problema especiacutefico As linguagenssatildeo de natureza universal e assemelham-se cada vez mais a linguagem do homem As

operaccedilotildees de caacutelculos eram realizadas em bilioneacutesimos de segundos Realizando 1280000

adiccedilotildeessegundos

Com a terceira geraccedilatildeo dos computadores surgiram tambeacutem os teclados para digitaccedilatildeo de

comandos Monitores tambeacutem permitiam a visualizaccedilatildeo de sistemas operacionais muito

primitivos ainda completamente distantes dos sistemas graacuteficos que conhecemos e utilizamos

atualmente

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 965

9

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Apesar das facilidades trazidas pelos semicondutores os computadores dessa geraccedilatildeo

natildeo foram reduzidos sendo que um dos modelos de mais sucesso (o IBM 360 que vendeu mais

de 30 mil unidades) chegava a pesar mais do que os antecessores Nessa eacutepoca (final da deacutecada

de 1970 e iniacutecio da deacutecada de 1980) os computadores passaram a ser mais acessiacuteveis

Outro grande avanccedilo da terceira geraccedilatildeo foi a adiccedilatildeo da capacidade de upgrade nas

maacutequinas As empresas poderiam comprar computadores com determinadas configuraccedilotildees e

aumentar as suas capacidades de acordo com a necessidade pagando relativamente pouco por

essas facilidades IBM 360

QUARTA GERACcedilAtildeO DOS COMPUTADORES - (1971 - 1980)

A quarta geraccedilatildeo teve iniacutecio em 1971 quando a Intel lanccedilou o primeiro microprocessador

o Intel 4004 muito mais potente que os circuitos SSI e MSI de ateacute entatildeo e soacute terminou em 1981

com o lanccedilamento dos circuitos ULSI (Circuitos de Escala Ultra Grande) Tem como marco inicial

com os computadores pessoais surgimento do microprocessador a reduccedilatildeo no tamanho dos

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1065

10

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

computadores foi muito grande Surgem muitas linguagens de alto niacutevel e nasce agrave teleinformaacutetica

transmissatildeo de dados entre computadores atraveacutes de rede

Continuou-se o desenvolvimento do Circuito Integrado e a busca de se colocar cada vez

mais um maior nuacutemero de componentes em um chip

A Intel comeccedilou suas pesquisas nessa aacuterea em 1969 Os resultados foram vistos quando

em novembro de 1971 buscando atender ao pedido de uma empresa japonesa que precisava de

um circuito integrado especial a Intel elaborou o 4004 criado por Federico Faggin Ted Hoff

e Stanley Mazor primeiro microprocessador comercial

Internet

De 1969 a 1972 foi criada a Arpanet que deu iniacutecio a Internet (teleinformaacutetica) que conhecemos

hoje A rede entrou no ar em dezembro de 1969 no EUA Eles eram interligados atraveacutes de links

de 50 k criados usando linhas telefocircnicas dedicadas adaptadas para o uso de transmissatildeo de

dados

Em 1971 ocorre a transmissatildeo do primeiro e-mail realizada pela Universidade da Califoacuternia para

um computador na Stanford Research Institute com o texto ldquoLOGINrdquo mas chegou apenas LO

A Ethernet surgiu entre 1972 e 1973 dentro do PARC (o laboratoacuterio de desenvolvimento da Xerox

nos Estados Unidos) onde foi feito o primeiro teste de transmissatildeo de dados usando esse

padratildeo

Em 1974 surgiu o TCPIP que acabou se tornando o protocolo definitivo para uso

na ARPANET e mais tarde na Internet

QUINTA GERACcedilAtildeO DOS COMPUTADORES ndash (1980Atualmente)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1165

11

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Desde o iniacutecio da era dos microcomputadores o avanccedilo tem sido constante O computador

que se fabrica hoje dentro de alguns meses jaacute estaacute obsoleto

Atualmente o que vem surgindo satildeo inuacutemeras renovaccedilotildees com o objetivo de evoluir os sistemas

rdquoEmbora os paradigmas possam mudar as pesquisas normalmente evoluem baseadas em

resultados do passado que se constituem em fundamentos de um desenvolvimento posteriorhelliprdquo

Para Fixar

Escreva um breve resumo sobre o processo evolutivo dos computadores

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________ ___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

__________________________________________________________________

SOFTWARES

O QUE Eacute Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por

um computador com o objetivo de executar tarefas especiacuteficas Em um computador o software eacute

classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer instruccedilotildees para o hardware

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1265

12

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Diferentemente do que muitas pessoas imaginam o computador natildeo faz nada sozinho Ele

apenas processa uma seacuterie de informaccedilotildees inseridas pelo usuaacuterio para entatildeo fornecer os

resultados As informaccedilotildees inseridas e os resultados que recebemos precisam estar num formato

que noacutes humanos conseguimos entender Para facilitar essa comunicaccedilatildeo entre homem e

computador foram criados os softwares ou programas de computador Na realidade tudo que

fazemos com um computador eacute pela execuccedilatildeo desses programas

Um sistema operacional eacute um programa que atua como intermediaacuterio entre o usuaacuterio e o

hardware de um computador O propoacutesito de um sistema operacional eacute propiciar um ambiente no

qual o usuaacuterio possa executar outros programas de forma conveniente por esconder detalhes

internos de funcionamento e eficiecircncia por procurar gerenciar de forma justa os recursos do

sistema

Vimos que o sistema operacional interage diretamente com o hardware e com isso eacuteinfluenciado diretamente pela evoluccedilatildeo do mesmo Portanto a evoluccedilatildeo dos sistemas

operacionais estaacute em grande parte relacionada ao desenvolvimento de equipamentos cada vez

mais velozes compactos e de custos baixos e agrave necessidade de aproveitamento e controle

destes recursos

Assim ao falar sobre o histoacuterico dos sistemas operacionais estaremos recordando um

pouco a evoluccedilatildeo do hardware Devemos lembrar que as datas das fases da evoluccedilatildeo satildeo

aproximadasHISTOacuteRIA

Desde os tempos do computador programado por chaves e cabos ateacute o surgimento do

teclado e impressora de caracteres procurou-se ao longo do processo evolutivo do computador

tornar a sua utilizaccedilatildeo mais amigaacutevel precisa raacutepida e eficaz

Primeira geraccedilatildeo (1945-1955)

Vaacutelvulas e Paineacuteis de Programaccedilatildeo - No iniacutecio da Segunda Guerra Mundial surgiram os primeiros

computadores digitais formados por milhares de vaacutelvulas que ocupavam aacutereas enormes sendo

de funcionamento lento e duvidoso O ENIAC foi o primeiro computador digital de propoacutesito geral

Criado para a realizaccedilatildeo de caacutelculos baliacutesticos A programaccedilatildeo era feita em paineacuteis atraveacutes de

fios utilizando linguagem de maacutequina Natildeo existia o conceito de sistema operacional Outros

computadores foram construiacutedos nessa eacutepoca mas eram utilizados apenas em universidades e

oacutergatildeos militares

SEGUNDA GERACcedilAtildeO (1956-1965)

Transistores e Sistemas em Lote (batch)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1365

13

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

A criaccedilatildeo do transistor e das memoacuterias magneacuteticas contribuiu para o enorme avanccedilo dos

computadores da eacutepoca O transistor permitiu o aumento da velocidade e da confiabilidade do

processamento as memoacuterias magneacuteticas permitiram o acesso mais raacutepido aos dados maior

capacidade de armazenamento e computadores menores

Surgiram os primeiros sistemas operacionais para tentar automatizar as tarefas manuais

ateacute entatildeo realizadas e as primeiras linguagens de programaccedilatildeo como Assembly e Fortran Os

programas deixaram de ser feitos diretamente no hardware o que facilitou enormemente o

processo de desenvolvimento de programas Surgiu o processamento em batch em que um lote

(batch) de programas e de dados era submetido ao computador por vez

Terceira geraccedilatildeo (1966-1980)

Circuitos Integrados e Multiprogramaccedilatildeo

Por meio dos circuitos integrados e posteriormente dos microprocessadores foi possiacutevelviabilizar e difundir o uso de sistemas computacionais por empresas devido agrave diminuiccedilatildeo de seus

custos de aquisiccedilatildeo Houve um aumento no poder de processamento e diminuiccedilatildeo no tamanho

dos equipamentos

A evoluccedilatildeo dos processadores de entradasaiacuteda permitiu que enquanto um programa

esperasse por uma operaccedilatildeo de leituragravaccedilatildeo o processador executasse um outro programa

Para tal a memoacuteria foi dividida em particcedilotildees em que um programa esperava sua vez para ser

processado A essa teacutecnica de compartilhamento da memoacuteria principal e processador deu-se onome de multiprogramaccedilatildeo

QUARTA GERACcedilAtildeO (1981-1990)

Computadores Pessoais

Os mini e superminicomputadores se firmaram no mercado e os microcomputadores

ganharam um grande impulso Surgem as estaccedilotildees de trabalho (workstations) que apesar de

monousuaacuterias permitem que se executem diversas tarefas concorrentemente criando o conceito

de multitarefa

No final dos anos 80 os computadores tiveram um grande avanccedilo decorrente de aplicaccedilotildees que

exigiam um enorme volume de caacutelculos Para acelerar o processamento foram adicionados

outros processadores exigindo dos sistemas operacionais novos mecanismos de controle e

sincronismo Com o multiprocessamento foi possiacutevel a execuccedilatildeo de mais de um programa

simultaneamente ou ateacute de um mesmo programa por mais de um processador Foram

introduzidos processadores vetoriais e teacutecnicas de paralelismo de processamento fazendo com

que os computadores se tornassem ainda mais poderosos

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1465

14

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O uso das redes distribuiacutedas se difundiu por todo o mundo permitindo o acesso a outros

sistemas de computaccedilatildeo independentemente de cidade paiacutes e ateacute mesmo fabricante Os

softwares de rede passaram a estar intimamente relacionados com o sistema operacional de cada

maacutequina e surgem os sistemas operacionais de rede

QUINTA GERACcedilAtildeO (1991ATUALMENTE)

Houve grandes avanccedilos em termos de hardware software e telecomunicaccedilotildees como

consequecircncia da evoluccedilatildeo das aplicaccedilotildees que necessitavam cada vez mais de capacidade de

processamento e armazenamento de dados Sistemas especialistas sistemas multimiacutedia bancos

de dados distribuiacutedos inteligecircncia artificial e redes neurais satildeo apenas alguns exemplos da

necessidade cada vez maior de informaccedilatildeo e de capacidade de processamento O conceito de

processamento distribuiacutedo eacute explorado nos sistemas operacionais de forma que suas funccedilotildees

estejam espalhadas por vaacuterios processadores atraveacutes de redes de computadores A deacutecada de 90 foi definitiva para a consolidaccedilatildeo dos sistemas operacionais baseados em

interfaces graacuteficas

Atualmente temos as plataformas multicore (vaacuterios nuacutecleos) disponiacuteveis em computadores

pessoais e ateacute notebooks possibilitando cada vez mais a paralelizaccedilatildeo de aplicaccedilotildees e elevando

em muito o tempo de execuccedilatildeo dos programas Os fanaacuteticos pelos jogos de computador que o

digam

Os sistemas operacionais - satildeo parte fundamental dos computadores satildeo responsaacuteveis pororganizar os processos (programas) que estatildeo sendo executados pelo processador criando uma

fila de processos que garante que todos receberatildeo sua parcela de processamento

Para Fixar

Escreva um breve resumo sobre o processo evolutivo dos Softwares

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________ __________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1565

15

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

PRINCIacutePAIS SISTEMAS OPERACIONAIS

Principais SO que deram iniacutecio a era Windows MCs Linux e Unix

1987 ndash Andrew Tanenbaum um professor de computaccedilatildeo holandecircs desenvolve um sistema

operacional didaacutetico simplificado mas respeitando a API do UNIX que foi batizado como Minix

1987 ndash IBM e Microsoft apresentam a primeira versatildeo do OS2 um sistema multitarefa destinado

a substituir o MS-DOS e o Windows Mais tarde as duas empresas rompem a parceria a IBM

continua no OS2 e a Microsoft investe no ambiente Windows

1991 ndash Linus Torvalds um estudante de graduaccedilatildeo Finlandecircs inicia o desenvolvimento do Linux

lanccedilando na rede Usenet o nuacutecleo 001 logo abraccedilado por centenas de programadores ao redor

do mundo

1993 ndash a Microsoft lanccedila o Windows NT o primeiro sistema 32 bits da empresa

Capiacutetulo 2 ndash Banco de Dados

Banco de dados eacute um arquivo especial que armazena dados arrumados sob forma de

tabelas ou matrizes (em linhas e colunas) Quando um conjunto de informaccedilotildees possui muitasvariaacuteveis interligadas entre si eacute aconselhaacutevel que sejam armazenadas e trabalhadas em um

banco de dados Os bancos de dados fornecem uma seacuterie de funcionalidades que natildeo satildeo

encontradas em arquivos comuns ldquoBancos de dados satildeo coleccedilotildees de informaccedilotildees que se

relacionam de forma que crie um sentidordquo Satildeo de vital importacircncia para empresas e haacute duas

deacutecadas se tornaram a principal peccedila dos sistemas de informaccedilatildeo ldquoFonte Wikipeacutediardquo

Entatildeo um banco de dados eacute uma entidade na qual eacute possiacutevel armazenar dados de maneira

estruturada e com a menor redundacircncia possiacutevel Estes dados devem poder ser utilizadas porprogramas por usuaacuterios diferentes Assim a noccedilatildeo baacutesica de dados eacute acoplada geralmente a

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1665

16

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

uma rede a fim de poder pocircr conjuntamente estas informaccedilotildees daiacute o nome banco Fala-se

geralmente de sistema de informaccedilatildeo para designar toda a estrutura que reuacutene os meios

organizados para poder compartilhar dados

DADOS amp INFORMACcedilOtildeES

Muitos consideram dados e informaccedilotildees como palavras sinocircnimas mas na verdade natildeo satildeo

Para entender o que eacute um banco de dados eacute muito importante saber a diferenccedila entre essas duas

palavras

Dados satildeo fatos brutos em sua forma primaacuteria E muitas vezes os dados podem natildeo fazer

sentido sozinhos

Informaccedilotildees consistem no agrupamento de dados de forma organizada para fazer sentido

gerar conhecimento

Por exemplo o nuacutemero 2001 isoladamente faz algum sentido Natildeo Isso eacute um dado E se eu

dissesse ldquoAno do atentado terrorista agraves torres gecircmeas 2001Prime Agora faz sentido Isso eacute

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1765

17

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

uma informaccedilatildeo Um banco de dados eacute uma estrutura de dados organizada que permite a

extraccedilatildeo de informaccedilotildees

Metadados ndash Eacute todo dado relativo a outro dado eacute chamado de metadados No exemplo anterior

do ano 2001 o dado ldquoAno do atentado terrorista agraves torres gecircmeasrdquo eacute um metadado pois ele eacute um

dado sobre o dado ldquo2001rdquo Outro exemplo mais comum em banco de dados o campo telefone da

tabela cliente tem entre outros os seguinte metadados nome (telefone) tipo (texto) tamanho (30

caracteres) obrigatoriedade (natildeo) etc

Um banco de dados eacute formado por dado e metadados Sem os metadados natildeo seria

possiacutevel organizar e extrair informaccedilotildees de um banco de dados

Para Fixar

Dados - Em informaacutetica designa-se por dados os elementos de partida que servem de base

para o tratamento e sobre os quais o computador efetua as operaccedilotildees necessaacuterias agrave tarefa emquestatildeo

Os dados satildeo uma representaccedilatildeo dos fatos conceitos ou instruccedilotildees de uma maneira

normalizada que se adapte agrave comunicaccedilatildeo interpretaccedilatildeo e processamento pelo ser humano ou

atraveacutes de maacutequinas automaacuteticas

Os dados satildeo representados por siacutembolos como por exemplo as letras do alfabeto a b c

etc mas natildeo satildeo em si a informaccedilatildeo desejada

ExemploO I O C O M B - satildeo dados mas natildeo eacute informaccedilatildeo perceptiacutevel ao homem

A informaccedilatildeo natildeo eacute mais do que dados organizados e ordenados de forma uacutetil Isto eacute informaccedilatildeo

eacute o conhecimento produzido como resultado do processamento de dados

Se processarmos os dados que tiacutenhamos anteriormente entatildeo obtemos a informaccedilatildeo

O I O C O M B - Dados

- Processamento

C O M B O I O ndash Informaccedilatildeo

Para fixar

Escreva o significado de

Dados___________________________________________________________________

_________________________________________________________________________

Informaccedilatildeo_______________________________________________________________

_________________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1865

18

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Metadados_______________________________________________________________

_________________________________________________________________________

Banco de

dados___________________________________________________________________

_________________________________________________________________________

A histoacuteria dos bancos de dados

Hoje os bancos de dados satildeo essenciais para muitas empresas e estatildeo no coraccedilatildeo de

muitos sistemas computacionais Ter acesso raacutepido agraves informaccedilotildees eacute muito importante para a

correta tomada de decisotildees em um negoacutecio Se vocecirc pretende trabalhar com desenvolvimento de

softwares com certeza precisaraacute trabalhar com bancos de dados em algum momento Conhecer

a histoacuteria dos bancos de dados e como eles evoluiacuteram eacute muito importante para entender como os

bancos de dados mais comuns satildeo organizados Entatildeo como aconteceu a evoluccedilatildeo dos bancos

de dados

Antigamente as empresas armazenavam dados em fichas de papel que eram organizadas

em arquivos fiacutesicos atraveacutes de pastas Extrair informaccedilotildees e manter esses arquivos organizados

era uma tarefa muito custosa Aleacutem disso o acesso agrave informaccedilatildeo dependia da localizaccedilatildeo

geograacutefica dos arquivos Enfim esses arquivos fiacutesicos evoluiacuteram para arquivos digitais No iniacutecio

cada entidade (clientes funcionaacuterios produtos etc) era um arquivo de dados que eram

acompanhados de um ldquosoftware simplesrdquo para manipular os dados do arquivo esses softwares

permitiam realizar operaccedilotildees de cadastro alteraccedilatildeo exclusatildeo e consulta nos arquivos digitais De

fato melhorou bastante principalmente a tarefa de consulta de informaccedilotildees poreacutem os arquivos

digitais eram ainda uma versatildeo melhorada dos arquivos fiacutesicos

Mas as entidades precisavam relacionar-se por exemplo um produto eacute fornecido por

um fornecedor e com os arquivos digitais relacionaacute-las natildeo era uma tarefa muito trivial os

ldquosoftwares simplesrdquo para manipular os arquivos digitais comeccedilaram a ficar ldquocomplexosrdquo para

permitir os relacionamentos entre entidades Entatildeo na deacutecada de 60 a empresa IBM investiu

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1965

19

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

fortemente em pesquisas para solucionar estes problemas dos bancos de dados digitais

primitivos Vaacuterios modelos de bancos de dados surgiram nesta eacutepoca dentre eles os modelos

hieraacuterquicos e rede

Em junho de 1970 o pesquisador Edgar Frank ldquoTedrdquo Codd da IBM mudou a histoacuteria dos

bancos de dados apresentando o modelo relacional no artigo intitulado ldquoA Relational Model of

Data for Large Shared Data Banksrdquo (Um modelo relacional de dados para grandes bancos de

dados compartilhados) onde o autor apresentou uma forma de usuaacuterios sem conhecimento

teacutecnico armazenarem e extraiacuterem grandes quantidades de informaccedilotildees de um banco de dados

Esse artigo foi o grande impulso para a evoluccedilatildeo dos bancos de dados a partir do artigo de ldquoTedrdquo

Codd que os cientistas aprofundaram a ideia de criar o modelo de banco de dados relacional

BANCO DE DADOS RELACIONAL

Apesar de ter sido o marco dos bancos de dados relacionais o artigo de Codd natildeo foimuito explorado no iniacutecio Soacute no final da deacutecada de 70 que foi desenvolvido um sistema baseado

nas ideias do cientista o ldquoSistema Rrdquo Junto com esse sistema foi criado a linguagem de consulta

estruturada (SQL ndash Structured Query Language) que se tornou a linguagem padratildeo para bancos

de dados relacionais Embora tenha contribuiacutedo para a evoluccedilatildeo dos bancos de dados

relacionais o ldquoSystem Rrdquo natildeo foi muito bem sucedido comercialmente mas os sistemas de banco

de dados seguintes foram baseados nele

Nos anos 80 surgiram outros bancos de dados a Oracle apresentou o Oracle 2 e a IBMo SQLDS (que se tornou DB2) ambos sistemas comerciais de bancos de dados Na sequencia

vieram SQL Server MySQL DBase III Paradox etchellip

BANCOS DE DADOS HOJE

Atualmente existem vaacuterios modelos de bancos de dados tais como orientado a objetos

orientado a documentos etc Mas o mais comum ainda eacute o banco de dados relacional A decisatildeo

entre qual modelo de banco de dados utilizarem baseia-se no tipo de dados que vocecirc pretende

armazenar Por exemplo se vocecirc for armazenar uma grande quantidade de dados em um modelo

pequeno (imagine um banco de dados para o twitter) eacute mais indicado utilizar um banco de dados

orientado a documentos a um banco de dados relacional Muitas questotildees envolvem essa

decisatildeo mas natildeo eacute uma questatildeo de superioridade entre uma ou outra tecnologia todas tecircm proacutes

e contras e satildeo mais indicadas ou natildeo para cada problema

Para fixar

Faccedila um breve resumo sobre o surgimos dos bancos de dados

______________________________________________________________________________

______________________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2065

20

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

Dados amp Informaccedilatildeo

A informaccedilatildeo eacute encarada atualmente como um dos recursos mais importantes de uma

organizaccedilatildeo contribuindo decisivamente para a sua maior ou menor competitividade De fato

com o aumento da concorrecircncia tornou-se vital melhorar as capacidades de decisatildeo a todos osniacuteveis

Hoje mais que nunca a tomada de decisatildeo nas organizaccedilotildees eacute um processo complexo

dada a qualidade de informaccedilatildeo em jogo a sua complexidade e a frequecircncia com que se altera

No entanto para que possa ser utilizada com um apoio eficaz agrave tomada de decisatildeo a informaccedilatildeo

soacute tecircm valor se verificarem simultaneamente algumas condiccedilotildees

ATUALIDADE ndash O valor da informaccedilatildeo dependeraacute em grande parte da sua atualidade

Dado o dinamismo verificado em todos os setores da sociedade em geral e do ambiente

empresarial em particular o periacuteodo de validade da informaccedilatildeo eacute cada vez mais curto Torna-se

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2165

21

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

necessaacuterio dispor de fontes de informaccedilatildeo que acompanhem continuamente essas modificaccedilotildees

Soacute com base em informaccedilatildeo atualizada se podem tomar decisotildees acertadas

CORRECcedilAtildeO ndash Natildeo basta que a informaccedilatildeo seja atual eacute tambeacutem necessaacuterio que na

medida do possiacutevel seja rigorosa Soacute com informaccedilatildeo correta se pode decidir com confianccedila

RELEVAcircNCIA ndash Dado o grande de volume de informaccedilatildeo envolvida o processo de tomada

de decisatildeo ao contraacuterio de ser facilitado pode ser dificultado pelo excesso de informaccedilatildeo A

informaccedilatildeo deve ser devidamente filtrada de tal forma que apenas aquela com relevacircncia para

cada situaccedilatildeo seja considerada

DISPONIBILIDADE ndash Ainda que a informaccedilatildeo verifique os trecircs requisitos anteriores a sua

utilidades poderaacute ser posta em causa se natildeo puder ser disponibilizada de forma imediata no

momento em que eacute solicitada As decisotildees muito ponderadas com o longo periacuteodo de gestaccedilatildeo

satildeo cada vez mais situaccedilotildees do passado Hoje dadas as caracteriacutesticas do meio envolvente oprocesso de tomada de decisatildeo tem que ser quase instantacircneo Para isso a informaccedilatildeo tem que

ser disponibilizada rapidamente caso contraacuterio deixa de ser uacutetil

LEGIBILIDADE - Esta condiccedilatildeo apesar de apresentada em uacuteltimo lugar natildeo eacute por isso

menos importante A informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada

De fato de nada vale que a informaccedilatildeo seja atual precisa relevante e disponibilizada em

tempo oportuno se natildeo puder ser entendida A forma como eacute disponibilizada tem tambeacutem grande

importacircncia informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada A forma como eacutedisponibilizada tem tambeacutem grande importacircncia

Quanto aos requisitos de atualidade e correccedilatildeo da informaccedilatildeo para que esta possa ser

correta e atual os dados de onde eacute derivada tecircm forccedilosamente que ser precisos e atualizados

Quanto aos requisitos de relevacircncia disponibilidade e legibilidade da informaccedilatildeo estes tecircm mais

a ver com os meios utilizados para o processamento dos dados

Como eacute que a informaccedilatildeo eacute organizada

A organizaccedilatildeo da informaccedilatildeo eacute efetuada de acordo com criteacuterios distintos como

Hierarquia dos seus componentes

O tipo de assunto a que se refere

Forma de armazenamento

Quanto agrave HIERARQUIA DOS COMPONENTES DA INFORMACcedilAtildeO esta eacute organizada em

Caracteres Campos Registros Ficheiros Caracteres - podem ser numeacutericos alfabeacuteticos ou

sinais de pontuaccedilatildeo Campos - satildeo conjuntos de caracteres que identificam um componente de

um registo Registos - satildeo agrupamentos de campos descritivos de uma realidade Ficheiros - satildeo

conjuntos de registos cuja informaccedilatildeo eacute estruturalmente analoacutegica

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2265

22

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Quanto AO TIPO DE ASSUNTO a que se refere agrave informaccedilatildeo

Esta pode ser como que etiquetada de modo a tornar faacutecil a sua procura e a evitar perdas

de tempo

Quando a informaccedilatildeo estaacute armazenada em ficheiros estes indicam o seu tipo atraveacutes de

uma extensatildeo ao nome do ficheiro

Algumas das extensotildees mais comuns satildeo

- COM ficheiro de comandos - BACK backup ou coacutepias de seguranccedila- EXE executaacuteveis - SYS ficheiros de sistema

- BAT processamento batch - XLS folha de caacutelculo provenientes do Excel

- TXT texto no formato ASCII - PPT apresentaccedilotildees provenientes do PowerPoint

- PAS programas em Linguagem Pascal - MBD base de dados provenientes do Access

- C programas em Linguagem C - DOC documentos provenientes de um processador de

texto

Quanto Agrave FORMA DE ARMAZENAMENTO da informaccedilatildeoRelativamente ao armazenamento por exemplo no disco riacutegido do computador a

informaccedilatildeo eacute organizada em diretorias cujo nome revela o tipo de ficheiros que aiacute se encontram

podendo cada diretorias conter diversas subdiretorias

Organizaccedilatildeo dos dados num Computador

Os dados que fornecemos a um computador para processar podem ser de trecircs tipos

quantitativos classificativos referenciais

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2365

23

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Dados quantitativos - satildeo os que exprimem quantidades e por isso normalmente servem

de base para caacutelculos aritmeacuteticos Exemplo a ficha escolar as notas do periacuteodo as faltas o total

das faltas

bull Dados classificativos - satildeo os que descrevem ou especificam os elementos envolvidos e

quantificados Normalmente servem de complemento aos dados quantitativos identificando

pessoas objetos situaccedilotildees etc Natildeo servem portanto para elementos de caacutelculo Exemplo a

ficha escolar o nome do aluno o nome da disciplina o nome do professor

bull Dados referenciais - satildeo dados que permitem controlar e referenciar os elementos

tratados Exemplo a ficha escolar o ano letivo o nuacutemero do aluno a turma

Para fixar

Escreva de forma resumida como podemos organizar os dados

_________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

Tipos de Operaccedilotildees realizadas sobre os dados

O tipo de operaccedilotildees efetuadas depende dos objetivos do processamento e igualmente dostipos de dados nele envolvidos pois o computador pode processar dados numeacutericos ou natildeo

numeacutericos Assim temos como operaccedilotildees possiacuteveis num processamento

bull Operaccedilotildees aritmeacuteticas - satildeo efetuadas apenas sobre dados numeacutericos e satildeo

basicamente constituiacutedas por somas subtraccedilotildees multiplicaccedilotildees divisotildees e outras similares

bull Operaccedilotildees loacutegicas - satildeo efetuadas sobre dados numeacutericos ou natildeo numeacutericos Estas

operaccedilotildees satildeo tambeacutem por vezes designadas por operaccedilotildees de comparaccedilatildeo

bull Operaccedilotildees de movimentaccedilatildeo interna - satildeo efetuadas sobre qualquer tipo de dados e

consistem na coacutepia e mudanccedila de localizaccedilatildeo interna dos dados na memoacuteria do computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2465

24

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Operaccedilatildeo de InputOutput - satildeo as operaccedilotildees que envolvem os oacutergatildeos de entrada e

saiacuteda permitindo a comunicaccedilatildeo entre o operador e a maacutequina

Funccedilotildees do processamento de dados

Considera-se como processamento de dados o conjunto de todas as operaccedilotildees efetuadas desde

a entrada dos dados ateacute agrave saiacuteda da informaccedilatildeo Todas estas operaccedilotildees de vaacuterios tipos satildeo

normalmente associadas a seis funccedilotildees do processamento de dados input ordenaccedilatildeo

processamento armazenamento output e controle

bull Input - fase de seleccedilatildeo e aquisiccedilatildeo dos dados pelo computador

bull Ordenaccedilatildeo - esta eacute uma funccedilatildeo auxiliar O seu objetivo eacute dispor os dados de uma forma

organizada (ordenada) de modo a facilitar o seu tratamento Se os dados se mantiverem

ordenados segundo um determinado criteacuterio preacute-definido a sua pesquisa eacute mais faacutecil o que faz

aumentar a velocidade do processamento

bull Processamento - considera-se processamento ao conjunto de todas as operaccedilotildees

efetuadas internamente pelo computador na manipulaccedilatildeo dos dados

bull Armazenamento - esta eacute uma funccedilatildeo muito importante que permite posteriormente

analisar as etapas e os resultados do processamento

bull Output - eacute a obtenccedilatildeo de resultados sob a forma de informaccedilatildeo significativa para as

pessoas a quem se destina

bull Controle - a sua finalidade eacute detectar corrigir e eliminar possiacuteveis erros ou afastamentosem relaccedilatildeo aos objetivos inicialmente traccedilados

Utilidade de um banco de dados

Um banco de dados permite pocircr dados agrave disposiccedilatildeo de usuaacuterios para uma consulta uma

introduccedilatildeo ou uma atualizaccedilatildeo assegurando-se dos direitos atribuiacutedos a estes uacuteltimos Isso eacute

ainda mais uacutetil quando os dados informaacuteticos satildeo cada vez mais numerosos

Um banco de dados pode ser local quer dizer utilizaacutevel em uma maacutequina por um usuaacuterio

ou repartida quer dizer que as informaccedilotildees satildeo armazenadas em maacutequinas distantes eacessiacuteveis por rede A vantagem essencial da utilizaccedilatildeo dos bancos de dados eacute a possibilidade

de poder ser acessada por vaacuterios usuaacuterios simultaneamente

A gestatildeo dos bancos de dados

A fim de poder controlar os dados bem como os usuaacuterios a necessidade de um sistema de

gestatildeo fez-se sentir rapidamente A gestatildeo do banco de dados faz-se graccedilas a um sistema

chamado SGBD (sistema de gestatildeo de bancos de dados) ou em inglecircs DBMS (Database

managment system) O SGBD eacute um conjunto de serviccedilos (aplicaccedilotildees software) que permitem

gerenciar os bancos de dados quer dizer

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2565

25

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Permitir o acesso aos dados de maneira simples

Autorizar um acesso agraves informaccedilotildees a muacuteltiplos usuaacuterios

Manipular os dados presentes no banco de dados (inserccedilatildeo supressatildeo modificaccedilatildeo)

O SGBD pode decompor-se em trecircs subsistemas

O sistema de gestatildeo de arquivos permite o armazenamento das informaccedilotildees num suporte

fiacutesico

O SGBD interno gerencia a emissatildeo das informaccedilotildees

O SGBD externo representa a interface com o usuaacuterio

Bancos de dados satildeo conjuntos de dados com uma estrutura regular que organizam

informaccedilatildeo Um banco de dados normalmente agrupa informaccedilotildees utilizadas para um mesmo fim

O modelo de dados mais adotado hoje em dia eacute o modelo relacional onde as estruturas

tecircm a forma de tabelas compostas por linhas e colunas

Resumindo um banco de dados eacute uma coleccedilatildeo de dados relacionados Entende-se por

dado toda a informaccedilatildeo que pode ser armazenada e que apresenta algum significado impliacutecito

dentro do contexto ao qual ele se aplica Por exemplo num sistema bancaacuterio uma pessoa eacuteidentificada pelo seu cpf(cliente) Em um sistema escolar a pessoa eacute identificada pelo seu nuacutemero

de matriacutecula(aluno) Aleacutem disso os dados que seratildeo armazenados em cada situaccedilatildeo podem

diferir consideravelmente

Atividades

1) Onde utilizar um banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2665

26

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2) Como funciona um sistema gerenciador de banco de dados

3) Como funciona o modelo relacional

Modelo Relacional

O modelo relacional eacute uma teoria matemaacutetica desenvolvida por Edgar Frank Codd para

descrever como as bases de dados devem funcionar Embora esta teoria seja a base para o

software de bases de dados relacionais muito poucos sistemas de gestatildeo de bases de dados

seguem o modelo de forma restrita e todos tecircm funcionalidades que violam a teoria desta forma

variando a complexidade e o poder A discussatildeo se esses bancos de dados merecem ser

chamados de relacional ficou esgotada com tempo com a evoluccedilatildeo dos bancos existentes

De acordo com a arquitetura ANSI SPARC em trecircs niacuteveis os Bancos de dados

relacionais consistem de trecircs componentes

bull uma coleccedilatildeo de estruturas de dados formalmente chamadas de relaccedilotildees ou

informalmente tabelas compondo o niacutevel conceitual

bull uma coleccedilatildeo dos operadores a aacutelgebra e o caacutelculo relacionais que constituem a base da

linguagem SQL

bull uma coleccedilatildeo de restriccedilotildees da integridade definindo o conjunto consistente de estados de

base de dados e de alteraccedilotildees de estados As restriccedilotildees de integridade podem ser de quatro

tipos

bull domiacutenio (ou tipo de dados) bull atributo

bull restriccedilotildees de base de dados

De acordo com o Princiacutepio de Informaccedilatildeo toda informaccedilatildeo tem de ser representada como dados

qualquer tipo de atributo representa relaccedilotildees entre conjuntos de dados

Nos bancos de dados relacionais os relacionamentos entre as tabelas natildeo satildeo codificados

explicitamente na sua definiccedilatildeo Em vez disso se fazem implicitamente pela presenccedila de

atributos chave As bases de dados relacionais permitem aos utilizadores (incluindo

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2765

27

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

programadores) escreverem consultas (queries) reorganizando e utilizando os dados de forma

flexiacutevel e natildeo necessariamente antecipada pelos projetistas originais

Esta flexibilidade eacute especialmente importante em bases de dados que podem ser utilizadas

durante deacutecadas tornando as bases de dados relacionais muito populares no meio comercial

Um dos pontos fortes do modelo relacional de banco de dados eacute a possibilidade de

definiccedilatildeo de um conjunto de restriccedilotildees de integridade Estas definem os conjuntos de estados e

mudanccedilas de estado consistentes do banco de dados determinando os valores que podem e os

que natildeo podem ser armazenados

Aplicaccedilotildees de bancos de dados

Bancos de dados satildeo usados em muitas aplicaccedilotildees enquanto atravessando virtualmente a

gama inteira de software de computador Bancos de dados eacute o meacutetodo preferido de

armazenamento para aplicaccedilotildees multiusuaacuterias grandes onde a coordenaccedilatildeo entre muitosusuaacuterios eacute necessaacuteria Ateacute mesmo usuaacuterios individuais os acham convenientes entretanto e

muitos programas de correio eletrocircnico e os organizadores pessoais estatildeo baseados em

tecnologia de banco de dados standard

Aplicativo de Banco de Dados

Um aplicativo de banco de dados eacute um tipo de software exclusivo para gerenciar um banco

de dados Aplicativos de banco de dados abrangem uma vasta variedade de necessidades e

objetivos de pequenas ferramentas como uma agenda ateacute complexos sistemas empresariaispara desempenhar tarefas como a contabilidade

O termo Aplicativo de Banco de dados usualmente se refere a softwares que oferecem

uma interface para o banco de dados Exemplos de aplicativos de banco de dados satildeo Microsoft

Visual FoxPro Microsoft Access dBASE FileMaker (em certa medida) HyperCard MySQL

PostgreSQL Microsoft SQL Server e Oracle

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2865

28

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Capiacutetulo 3 - HARDWARE E SOFTWARE

O QUE Eacute O HARDWARE

No acircmbito da informaacutetica eacute dada a designaccedilatildeo de hardware a todos os componentes

fiacutesicos que fazem parte de um sistema informaacutetico incluiacutedo toda a parte fiacutesica de um computador

(nomeadamente os processadores motherbord disco riacutegido placas de som placas de viacutedeo

memoacuterias etc) e todos os perifeacutericos (tais como teclados mouse monitores impressoras

scanners modems entre outros)

Peccedilas de um computador

Se vocecirc usa um computador desktop jaacute deve saber que natildeo existe uma parte uacutenica

chamada computador Um computador eacute na verdade um sistema de muitas partes funcionando

em conjunto As partes fiacutesicas que vocecirc pode ver e tocar satildeo denominadas

coletivamente hardware (O software por outro lado se refere agraves instruccedilotildees ou programas que

dizem ao hardware o que fazer)

A ilustraccedilatildeo a seguir mostra os dispositivos de hardware mais comuns em um sistema de

computador desktop Seu sistema pode ter uma aparecircncia um pouco diferente mas

provavelmente possui a maioria destas peccedilas Um computador laptop possui peccedilas semelhantes

mas as combina em um uacutenico pacote do tamanho de um caderno

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2965

29

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Sistema de computador desktop

Unidade de sistema

A unidade de sistema (Gabinete) eacute o nuacutecleo de um sistema de computador Normalmente

eacute uma caixa retangular colocada sobre a mesa ou embaixo dela Dentro dessa caixa estatildeo os

componentes eletrocircnicos que processam as informaccedilotildees O mais importante desses

componentes eacute a CPU (unidade de processamento central) ou microprocessador que atua como

o ceacuterebro do computador Outro componente eacute a memoacuteria RAM que armazena

temporariamente informaccedilotildees utilizadas pela CPU enquanto o computador estaacute ligado As

informaccedilotildees gravadas na RAM satildeo apagadas quando o computador eacute desligado

Quase todas as outras partes do computador se conectam agrave unidade de sistema por meio

de cabos Os cabos satildeo conectados aportas (aberturas) especiacuteficas geralmente na parte traseira

da unidade de sistema O hardware que natildeo faz parte da unidade de sistema eacute

chamado dispositivo perifeacuterico ou simplesmente dispositivo

Unidade de sistema

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3065

30

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Armazenamento

O computador possui uma ou mais unidades de disco ou seja dispositivos que armazenam

informaccedilotildees em um disco de plaacutestico ou de metal O disco preserva as informaccedilotildees mesmo

quando o computador estaacute desligado

Unidade de disco riacutegido

A unidade de disco riacutegido do computador armazena informaccedilotildees em um disco riacutegido que eacute um

prato riacutegido ou pilha de pratos com uma superfiacutecie magneacutetica Como os discos riacutegidos podem

reter uma grande quantidade de informaccedilotildees normalmente eles funcionam como principal meio

de armazenamento do computador guardando praticamente todos os programas e arquivos Em

geral a unidade de disco riacutegido fica localizada dentro da unidade de sistema

Unidade de disco riacutegidoUnidades de CD e DVD

Hoje em dia quase todos os computadores vecircm equipados com uma unidade de CD ou DVD

geralmente localizada na frente da unidade de sistema As unidades de CD usam lasers para ler

(recuperar) dados de um CD Muitas delas tambeacutem podem gravar dados em CDs Se vocecirc tiver

uma unidade de disco gravaacutevel poderaacute armazenar coacutepias de seus arquivos em CDs vazios A

unidade de CD tambeacutem serve para tocar CDs de muacutesica no computador

CD

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3165

31

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

As unidades de DVD fazem o mesmo que as unidades de CD e tambeacutem lecircem DVDs Se vocecirc

tiver uma unidade de DVD poderaacute ver filmes no computador Muitas unidades de DVD podem

gravar dados em DVDs vazios

Dica

Se vocecirc tiver uma unidade de CD ou DVD gravaacutevel faccedila backup (copie) periodicamente de seus

arquivos importantes em CDs ou DVDs Dessa forma caso venha a ocorrer alguma falha no disco

riacutegido vocecirc natildeo perderaacute os dados

Unidade de disquete

As unidades de disquete armazenam informaccedilotildees em discos tambeacutem chamados discos

flexiacuteveis ou disquetes Comparado a CDs e DVDs os disquetes podem armazenar apenas uma

pequena quantidade de dados Eles tambeacutem recuperam informaccedilotildees de forma mais lenta e satildeo

mais vulneraacuteveis a danos Por esses motivos as unidades de disquete satildeo cada vez menosusadas embora ainda sejam incluiacutedas em alguns computadores

Disquete

Por que estes discos satildeo chamados de disquetes Apesar de a parte externa ser composta de

plaacutestico riacutegido isso eacute apenas a capa O interior do disco eacute feito de um material de vinil fino e

flexiacutevel

Mouse

Mouse eacute um pequeno dispositivo usado para apontar e selecionar itens na tela do computador

Embora existam mouses de vaacuterias formas o modelo mais comum se assemelha a um rato (como

diz o nome em inglecircs) Ele eacute pequeno e alongado sendo conectado agrave unidade de sistema por um

cabo comprido que faz lembrar uma cauda Alguns mouses mais novos satildeo sem fio

Mouse

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3265

32

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O mouse geralmente possui dois bototildees um botatildeo principal (normalmente o da esquerda) e um

botatildeo secundaacuterio Muitos mouses tambeacutem tecircm uma roda entre os dois bototildees que permite

percorrer as telas de informaccedilotildees

Ponteiros do mouse

Agrave medida que vocecirc move o mouse com a matildeo um ponteiro na tela se move na mesma direccedilatildeo

(A aparecircncia do ponteiro pode mudar dependendo da sua posiccedilatildeo na tela) Quando quiser

selecionar um item aponte para ele e clique no botatildeo principal ou seja pressione-o e solte-o

Apontar e clicar com o mouse eacute a principal maneira de interagir com o computador Para mais

informaccedilotildees consulte Usando o mouse

Teclado

A finalidade principal do teclado eacute digitar texto no computador Ele possui teclas para letras e

nuacutemeros exatamente como em uma maacutequina de escrever A diferenccedila estaacute nas teclas especiais

As teclas de funccedilatildeo localizadas na linha superior executam funccedilotildees diferentes dependendo

de onde satildeo usadas

O teclado numeacuterico localizado agrave direita na maioria dos teclados permite inserir nuacutemeros

rapidamente

As teclas de navegaccedilatildeo como as teclas de seta permitem mover sua posiccedilatildeo dentro de

documentos ou paacuteginas da Web

Teclado

Vocecirc tambeacutem pode usar o teclado para executar muitas das mesmas tarefas que executa com

um mouse Para mais informaccedilotildees consulte Usando o teclado

Monitor

O monitor exibe informaccedilotildees em forma visual usando texto e elementos graacuteficos A parte do

monitor que exibe as informaccedilotildees eacute chamada tela Como a tela de uma televisatildeo a tela de um

computador pode mostrar imagens paradas ou em movimento

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3365

33

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Existem dois tipos baacutesicos de monitores CRT (tubo de raios catoacutedicos) e LCD (viacutedeo de cristal

liacutequido) Ambos produzem imagens niacutetidas mas os monitores LCD levam vantagem por serem

mais finos e mais leves

Monitor LCD (agrave esquerda) monitor CRT (agrave direita)

Impressora

Uma impressora transfere dados de um computador para o papel Vocecirc natildeo precisa de

impressora para usar o computador mas se tiver uma poderaacute imprimir emails cartotildees convites

anuacutencios e outros materiais Muitas pessoas tambeacutem preferem imprimir suas fotos em casa

Os dois principais tipos de impressora satildeo a jato de tinta e a laser As impressoras a jato de tinta

satildeo as mais populares para uso domeacutestico Elas podem imprimir em preto e branco ou em cores

e produzem fotos de alta qualidade quando usadas com papel especial As impressoras a laser

satildeo mais raacutepidas e mais adequadas para uso intenso

Impressora a jato de tinta (agrave esquerda) impressora a laser (agrave direita)

Alto-falantes

Os alto-falantes satildeo usados para tocar som Eles podem vir embutidos na unidade de sistema ou

ser conectados com cabos Satildeo eles que permitem ouvir muacutesica e efeitos de som no computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3465

34

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Alto-falantes do computador

Modem

Para conectar o computador agrave Internet vocecirc precisa de um modem um dispositivo que envia e

recebe informaccedilotildees do computador por linha telefocircnica ou cabo de alta velocidade Agraves vezes os

modems vecircm embutidos na unidade de sistema mas os de alta velocidade normalmente satildeo

componentes separados

Modem a cabo

O QUE Eacute O SOFTWARE

O Software eacute uma aplicaccedilatildeo ou programa do computador escrita numa determinadalinguagem interpretaacutevel por uma determinada maacutequina (o processador de um computador ou

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3565

35

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

outro equipamento) e que permite executar determinadas tarefas para as quais o software foi

projetado Estes programas satildeo compostos por uma sequecircncia de instruccedilotildees (os comandos) e de

declaraccedilotildees de dados as quais satildeo armazenaacuteveis num meio digital

Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por um

computador com o objetivo de executar tarefas especiacuteficas Tambeacutem pode ser definido como

os programas que comandam o funcionamento de um computador

Em um computador o software eacute classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer

instruccedilotildees para o hardware O hardware eacute toda a parte fiacutesica que constitui o computador por

exemplo a CPU a memoacuteria e os dispositivos de entrada e saiacuteda O software eacute constituiacutedo por

todos os programas que existem para um referido sistema quer sejam produzidos pelo proacuteprio

utente ou pelo fabricante do computador

O termo inglecircs software foi usado pela primeira vez em 1958 em um artigo escrito pelo cientistaamericano John Wilder Tukey Foi tambeacutem ele o responsaacutevel por introduzir o termo bit para

designar diacutegito binaacuterio

Os softwares podem ser classificados como

SOFTWARE DE SISTEMA

Geralmente dividido em SISTEMAS OPERACIONAIS e PROGRAMAS UTILITAacuteRIOS Para

comeccedilar os Sist Operacionais satildeo de grande importacircncia pois eles nos datildeo a opccedilatildeo de dizer ao

computador o que ele deve fazer Dois exemplos bastante conhecidos do nosso puacuteblico satildeoo Mac o Windows e o Linux Os Programas utilitaacuterios geralmente satildeo softwares de menor porte

com funccedilotildees mais especificas tipo Verificaccedilatildeo de Disco Coacutepias de Seguranccedila entre outros

SOFTWARE APLICATIVO

Neste tipo de software se enquadram todos aqueles programas que satildeo utilizados na execuccedilatildeo

de tarefas especiacuteficas Posso citar vaacuterios exemplos mas os mais comuns satildeo os processadores

de texto como o Word que servem para trabalhar com os mais diversos tipos de textos emitir

etiquetas e fazer formulaacuterios as planilhas eletrocircnicas como o Excel satildeo poderosas ferramentas

de caacutelculos que facilitam tanto aquele trabalho aacuterduo de matemaacutetica fazer graacuteficos com real

representaccedilatildeo dos dados eacute uma coisa muito boa pra quem precisa e por uacuteltimo o que muitos

usam mas natildeo sabem o nome ao certo que satildeo os Browsers ou Navegadores softwares usados

para navegar na Web dentre eles os mais conhecidos atualmente satildeo Windows Internet

Explorer Firefox Google Chrome Opera e Safaacuteri

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3665

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3765

37

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

hoje eles satildeo bastante usados em situaccedilotildees de treinamentos de pessoas para enfrentar casos no

seu dia-a-dia

SOFTWARE DE JOGOS

Geralmente satildeo softwares relacionados a entretenimento para proporcionar lazer e diversatildeo

Dispotildeem de muitos recursos interativos e existem de todos os tipos desde estrateacutegias ateacute

simulaccedilotildees reais de muitas coisas como corridas (Need for Speed) ateacute mesmo de vida como o

Second Life

SOFTWARES ABERTOS

Satildeo aqueles que permitem que o usuaacuterio produza com liberdade e criatividade se classificam

nessa categoria aqueles softwares de apresentaccedilotildees bancos de dados e vaacuterios outros

Para fixar

Descreva uma definiccedilatildeo para os tipos de softwares

Software de Sistema_____________________________________________________________

Software Aplicativo ______________________________________________________________

Software de Linguagem __________________________________________________________

Software abertos _______________________________________________________________

Capiacutetulo 4 - Conceitos Baacutesicos de Banco de Dados

Segundo Korth um banco de dados ldquoeacute uma coleccedilatildeo de dados inter -relacionados

representando informaccedilotildees sobre um domiacutenio especiacuteficordquo ou seja sempre que for possiacutevel

agrupar informaccedilotildees que se relacionam e tratam de um mesmo assunto posso dizer que tenho

um banco de dados

Podemos exemplificar situaccedilotildees claacutessicas como uma lista telefocircnica um cataacutelogo de CDs ou um

sistema de controle de RH de uma empresa

Jaacute um sistema de gerenciamento de banco de dados (SGBD) eacute um software que possui

recursos capazes de manipular as informaccedilotildees do banco de dados e interagir com o usuaacuterio

Exemplos de SGBDs satildeo Oracle SQL Server DB2 PostgreSQL MySQL o proacuteprio Access ouParadox entre outros

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3865

38

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Por uacuteltimo temos que conceituar um sistema de banco de dados como o conjunto de quatro

componentes baacutesicos dados hardware software e usuaacuterios Date conceituou que ldquosistema de

bancos de dados pode ser considerado como uma sala de arquivos eletrocircnicardquo A Figura 1 ilustra

os componentes de um sistema de banco de dados

Componentes de um sistema de banco de dados

Os objetivos de um sistema de banco de dados satildeo o de isolar o usuaacuterio dos detalhes

internos do banco de dados (promover a abstraccedilatildeo de dados) e promover a independecircncia dos

dados em relaccedilatildeo agraves aplicaccedilotildees ou seja tornar independente da aplicaccedilatildeo a estrateacutegia de

acesso e a forma de armazenamento

Abstraccedilatildeo de dados

O sistema de banco de dados deve garantir uma visatildeo totalmente abstrata do banco de

dados para o usuaacuterio ou seja para o usuaacuterio do banco de dados pouco importa qual unidade de

armazenamento estaacute sendo usada para guardar seus dados contanto que os mesmos estejam

disponiacuteveis no momento necessaacuterio

Esta abstraccedilatildeo se daacute em trecircs niacuteveis (Figura 2) Niacutevel de visatildeo do usuaacuterio as partes do banco de dados que o usuaacuterio tem acesso de

acordo com a necessidade individual de cada usuaacuterio ou grupo de usuaacuterios

Niacutevel conceitual define quais os dados que estatildeo armazenados e qual o relacionamento

entre eles

Niacutevel fiacutesico eacute o niacutevel mais baixo de abstraccedilatildeo em que define efetivamente de que maneira

os dados estatildeo armazenados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3965

39

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 2 Niacuteveis de abstraccedilatildeo

Projeto de banco de dados

Todo bom sistema de banco de dados deve apresentar um projeto que visa a organizaccedilatildeo das

informaccedilotildees e utilizaccedilatildeo de teacutecnicas para que o futuro sistema obtenha boa performance e

tambeacutem facilite infinitamente as manutenccedilotildees que venham a acontecer

O projeto de banco de dados se daacute em duas fases

Modelagem conceitual Projeto loacutegico

Estas duas etapas se referem a um sistema de banco de dados ainda natildeo implementado ou seja

que ainda natildeo exista um novo projeto Para os casos em que o banco de dados jaacute exista mas eacute

um sistema legado por exemplo ou um sistema muito antigo sem documentaccedilatildeo o processo de

projeto de banco de dados se daraacute atraveacutes da utilizaccedilatildeo de uma teacutecnica chamada de Engenharia

Reversa que seraacute visto em outra oportunidade

Modelo conceitual

Eacute a descriccedilatildeo do BD de maneira independente ao SGBD ou seja define quais os dados

que apareceratildeo no BD mas sem se importar com a implementaccedilatildeo que se daraacute ao BD Desta

forma haacute uma abstraccedilatildeo em niacutevel de SGBD

Uma das teacutecnicas mais utilizadas dentre os profissionais da aacuterea eacute a abordagem entidade-

relacionamento (ER) onde o modelo eacute representado graficamente atraveacutes do diagrama entidade-

relacionamento (DER) (Figura 3)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 5: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 565

5

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

A PRIMEIRA GERACcedilAtildeO (1940 ndash 1950)

O primeiro computador eletrocircnico digital foi resultado dos trabalhos de um professor de Fiacutesica da

Universidade de Iowa EUA John Vincent Atanasoff que na busca de um meio para resolver

equaccedilotildees lineares teve a ideia de combinar simultaneamente um circuito eletrocircnico com uma

memoacuteria de varredura mecacircnica usando capacitores Em sua concepccedilatildeo baacutesica o dispositivo

consistia de uma memoacuteria composta de cilindros rotativos

Provido com contatos eleacutetricos na forma de pequenos pinos de latatildeo interligados com

capacitores de papel cuja variaccedilatildeo de carga durante a operaccedilatildeo era monitorado e ajustado por

um circuito eleacutetrico Por sua vez a loacutegica do sistema era feito com 255 vaacutelvulas tipo duplo triacuteodoNo iniacutecio da segunda guerra mundial os computadores eletromecacircnicos disponiacuteveis como

o ldquoASCCrdquo - Automatic Sequence Controlled Calculator - desenvolvido pela IBM EUA jaacute natildeo eram

tatildeo raacutepidos para resolver os complicados caacutelculos baliacutesticos exigidos pelos armamentos usados

no novo tipo de guerra aeacuterea de forma que o aparelho de Atanasoff por ter uma concepccedilatildeo

diferente natildeo mais usando de multivibradores biestaacuteveis ou flip-flop poreacutem de um conceito

eletrocircnico foi agrave origem do emprego da vaacutelvula na incipiente ciecircncia da computaccedilatildeo Assim em 5

de junho de 1943 o governo americano assina um contrato com a universidade da Pensilvacircniapara desenvolver o projeto do ldquoENIACrdquo ou - Electronic Numerical Integrator and Computer

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 665

6

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ENIAC ndash PRIMEIRO COMPUTADOR

Computador integrado numeacuterico eletrocircnico foi o primeiro computador digital eletrocircnico de grandeescala O ENIAC comeccedilou a ser desenvolvido em 1946 durante a II Guerra Mundial para

computar trajetoacuterias taacuteticas que exigissem conhecimento substancial em matemaacutetica mas soacute se

tornou operacional apoacutes o final da guerra

Sua capacidade de processamento era de 5000 operaccedilotildees por segundo

Criado na segunda guerra tinha como principal finalidade caacutelculos baliacutesticos

Possuiacutea 18000 vaacutelvulas termiocircnicas de 160 kW de potecircncia

Pesava 30 Toneladas Esta maacutequina natildeo tinha sistema operacional e seu funcionamento era parecido com

uma calculadora simples de hoje O ENIAC assim como uma calculadora tinha de ser

operado manualmente

A calculadora efetua os caacutelculos a partir das teclas pressionadas fazendo interaccedilatildeo direta com o

hardware no qual era preciso conectar fios relecircs e sequecircncias de chaves para que se

determinasse a tarefa a ser executada A cada tarefa diferente o processo deveria ser refeito A

resposta era dada por uma sequecircncia de lacircmpadas A uacutenica forma de armazenar dados era

atraveacutes de cartotildees perfurados

SEGUNDA GERACcedilAtildeO DOS COMPUTADORES - (1952 - 1964)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 765

7

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Esta Geraccedilatildeo foi originada pela revoluccedilatildeo dos Transistores os quais substituiacuteram as volumosas

vaacutelvulas Houve uma enorme diminuiccedilatildeo em cabos e fios tendo em vista que cada transistor

substituiacutea dezenas de vaacutelvulas Desta maneira os computadores tornaram-se consideravelmente

menores e devido a isso muito mais velozes O computador comeccedila a ser utilizado nas grandes

empresas Projetos foram implementados baseados na utilizaccedilatildeo de transistores houve grandes

avanccedilos no que se refere agraves unidades de memoacuteria principal com a substituiccedilatildeo do sistema de

tubos de raios catoacutedicos pelo de nuacutecleos magneacuteticos (usados ateacute hoje)

A memoacuteria teve um aumento em sua capacidade de armazenamento chegando a 32K

Principais computadores IBM 1401 IBM 7094 Honeywell 800 e IBM 7090

Tanto a vaacutelvula quanto o transistor realizavam um processamento de cada vez Com o

desenvolvimento das teacutecnicas de integraccedilatildeo surgiram os Circuitos Integrados onde numa

pequena caacutepsula continha vaacuterias dezenas centenas ou milhares de transistores ocupando umaaacuterea menor que uma unha dando o nome de microprocessador (processador miniatura) A

linguagem de programaccedilatildeo foi simplificada e jaacute se podia programar atraveacutes de mnemocircnicos

(comandos abreviados) Esta linguagem denomina-se ASSEMBLER As operaccedilotildees de caacutelculos

eram realizadas em milioneacutesimos de segundos Realizando 204000 adiccedilotildeessegundos Aleacutem do

surgimento dos nuacutecleos de ferrite fitas e tambores magneacuteticos passam a ser usados como

memoacuteria

Eacute possiacutevel dividir os computadores desta geraccedilatildeo em duas grandes categoriassupercomputadores e minicomputadores

IBM 7030 tambeacutem conhecido por Strech foi o primeiro supercomputador lanccedilado na

segunda geraccedilatildeo desenvolvido pela IBM Seu tamanho era bem reduzido comparado com

maacutequinas como o ENIAC podendo ocupar somente uma sala comum Ele era utilizado por

grandes companhias custando em torno de 13 milhotildees de doacutelares na eacutepoca Esta maacutequina

executava caacutelculos na casa dos microssegundos o que permitia ateacute um milhatildeo de operaccedilotildees por

segundo Desta maneira um novo patamar de velocidade foi atingido Comparado com os da

primeira geraccedilatildeo os supercomputadores como o IBM 7030 eram mais confiaacuteveis

PDP-8 foi um dos mini-computadores mais conhecidos da segunda geraccedilatildeo Basicamente

foi uma versatildeo mais baacutesica do supercomputador sendo mais atrativo do ponto de vista financeiro

(centenas de milhotildees de doacutelares) Eram menores do que os supercomputadores mas mesmo

assim ainda ocupavam um bom espaccedilo no cocircmodo

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 865

8

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

TERCEIRA GERACcedilAtildeO DOS COMPUTADORES - (1964 - 1971)

A 3ordf Geraccedilatildeo surgiu com a utilizaccedilatildeo dos Circuitos Integrados ndash SLT (Solid Logic Technolo-

gy) uma teacutecnica de micro circuitos Nesta geraccedilatildeo os computadores podiam realizar vaacuterios

processamentos simultacircneos As teacutecnicas de integraccedilatildeo evoluiacuteram de SSI (integraccedilatildeo em

pequena escala) para MSI (integraccedilatildeo em meacutedia escala) LSI (integraccedilatildeo em grande escala) e

VLSI (integraccedilatildeo em muito grande escala) Esta classificaccedilatildeo eacute baseada na quantidade de

componentes que o integrado conteacutem A programaccedilatildeo dos computadores desta geraccedilatildeo foi

facilitada pelo aparecimento de linguagens orientadas para o problema especiacutefico As linguagenssatildeo de natureza universal e assemelham-se cada vez mais a linguagem do homem As

operaccedilotildees de caacutelculos eram realizadas em bilioneacutesimos de segundos Realizando 1280000

adiccedilotildeessegundos

Com a terceira geraccedilatildeo dos computadores surgiram tambeacutem os teclados para digitaccedilatildeo de

comandos Monitores tambeacutem permitiam a visualizaccedilatildeo de sistemas operacionais muito

primitivos ainda completamente distantes dos sistemas graacuteficos que conhecemos e utilizamos

atualmente

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 965

9

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Apesar das facilidades trazidas pelos semicondutores os computadores dessa geraccedilatildeo

natildeo foram reduzidos sendo que um dos modelos de mais sucesso (o IBM 360 que vendeu mais

de 30 mil unidades) chegava a pesar mais do que os antecessores Nessa eacutepoca (final da deacutecada

de 1970 e iniacutecio da deacutecada de 1980) os computadores passaram a ser mais acessiacuteveis

Outro grande avanccedilo da terceira geraccedilatildeo foi a adiccedilatildeo da capacidade de upgrade nas

maacutequinas As empresas poderiam comprar computadores com determinadas configuraccedilotildees e

aumentar as suas capacidades de acordo com a necessidade pagando relativamente pouco por

essas facilidades IBM 360

QUARTA GERACcedilAtildeO DOS COMPUTADORES - (1971 - 1980)

A quarta geraccedilatildeo teve iniacutecio em 1971 quando a Intel lanccedilou o primeiro microprocessador

o Intel 4004 muito mais potente que os circuitos SSI e MSI de ateacute entatildeo e soacute terminou em 1981

com o lanccedilamento dos circuitos ULSI (Circuitos de Escala Ultra Grande) Tem como marco inicial

com os computadores pessoais surgimento do microprocessador a reduccedilatildeo no tamanho dos

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1065

10

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

computadores foi muito grande Surgem muitas linguagens de alto niacutevel e nasce agrave teleinformaacutetica

transmissatildeo de dados entre computadores atraveacutes de rede

Continuou-se o desenvolvimento do Circuito Integrado e a busca de se colocar cada vez

mais um maior nuacutemero de componentes em um chip

A Intel comeccedilou suas pesquisas nessa aacuterea em 1969 Os resultados foram vistos quando

em novembro de 1971 buscando atender ao pedido de uma empresa japonesa que precisava de

um circuito integrado especial a Intel elaborou o 4004 criado por Federico Faggin Ted Hoff

e Stanley Mazor primeiro microprocessador comercial

Internet

De 1969 a 1972 foi criada a Arpanet que deu iniacutecio a Internet (teleinformaacutetica) que conhecemos

hoje A rede entrou no ar em dezembro de 1969 no EUA Eles eram interligados atraveacutes de links

de 50 k criados usando linhas telefocircnicas dedicadas adaptadas para o uso de transmissatildeo de

dados

Em 1971 ocorre a transmissatildeo do primeiro e-mail realizada pela Universidade da Califoacuternia para

um computador na Stanford Research Institute com o texto ldquoLOGINrdquo mas chegou apenas LO

A Ethernet surgiu entre 1972 e 1973 dentro do PARC (o laboratoacuterio de desenvolvimento da Xerox

nos Estados Unidos) onde foi feito o primeiro teste de transmissatildeo de dados usando esse

padratildeo

Em 1974 surgiu o TCPIP que acabou se tornando o protocolo definitivo para uso

na ARPANET e mais tarde na Internet

QUINTA GERACcedilAtildeO DOS COMPUTADORES ndash (1980Atualmente)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1165

11

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Desde o iniacutecio da era dos microcomputadores o avanccedilo tem sido constante O computador

que se fabrica hoje dentro de alguns meses jaacute estaacute obsoleto

Atualmente o que vem surgindo satildeo inuacutemeras renovaccedilotildees com o objetivo de evoluir os sistemas

rdquoEmbora os paradigmas possam mudar as pesquisas normalmente evoluem baseadas em

resultados do passado que se constituem em fundamentos de um desenvolvimento posteriorhelliprdquo

Para Fixar

Escreva um breve resumo sobre o processo evolutivo dos computadores

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________ ___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

__________________________________________________________________

SOFTWARES

O QUE Eacute Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por

um computador com o objetivo de executar tarefas especiacuteficas Em um computador o software eacute

classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer instruccedilotildees para o hardware

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1265

12

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Diferentemente do que muitas pessoas imaginam o computador natildeo faz nada sozinho Ele

apenas processa uma seacuterie de informaccedilotildees inseridas pelo usuaacuterio para entatildeo fornecer os

resultados As informaccedilotildees inseridas e os resultados que recebemos precisam estar num formato

que noacutes humanos conseguimos entender Para facilitar essa comunicaccedilatildeo entre homem e

computador foram criados os softwares ou programas de computador Na realidade tudo que

fazemos com um computador eacute pela execuccedilatildeo desses programas

Um sistema operacional eacute um programa que atua como intermediaacuterio entre o usuaacuterio e o

hardware de um computador O propoacutesito de um sistema operacional eacute propiciar um ambiente no

qual o usuaacuterio possa executar outros programas de forma conveniente por esconder detalhes

internos de funcionamento e eficiecircncia por procurar gerenciar de forma justa os recursos do

sistema

Vimos que o sistema operacional interage diretamente com o hardware e com isso eacuteinfluenciado diretamente pela evoluccedilatildeo do mesmo Portanto a evoluccedilatildeo dos sistemas

operacionais estaacute em grande parte relacionada ao desenvolvimento de equipamentos cada vez

mais velozes compactos e de custos baixos e agrave necessidade de aproveitamento e controle

destes recursos

Assim ao falar sobre o histoacuterico dos sistemas operacionais estaremos recordando um

pouco a evoluccedilatildeo do hardware Devemos lembrar que as datas das fases da evoluccedilatildeo satildeo

aproximadasHISTOacuteRIA

Desde os tempos do computador programado por chaves e cabos ateacute o surgimento do

teclado e impressora de caracteres procurou-se ao longo do processo evolutivo do computador

tornar a sua utilizaccedilatildeo mais amigaacutevel precisa raacutepida e eficaz

Primeira geraccedilatildeo (1945-1955)

Vaacutelvulas e Paineacuteis de Programaccedilatildeo - No iniacutecio da Segunda Guerra Mundial surgiram os primeiros

computadores digitais formados por milhares de vaacutelvulas que ocupavam aacutereas enormes sendo

de funcionamento lento e duvidoso O ENIAC foi o primeiro computador digital de propoacutesito geral

Criado para a realizaccedilatildeo de caacutelculos baliacutesticos A programaccedilatildeo era feita em paineacuteis atraveacutes de

fios utilizando linguagem de maacutequina Natildeo existia o conceito de sistema operacional Outros

computadores foram construiacutedos nessa eacutepoca mas eram utilizados apenas em universidades e

oacutergatildeos militares

SEGUNDA GERACcedilAtildeO (1956-1965)

Transistores e Sistemas em Lote (batch)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1365

13

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

A criaccedilatildeo do transistor e das memoacuterias magneacuteticas contribuiu para o enorme avanccedilo dos

computadores da eacutepoca O transistor permitiu o aumento da velocidade e da confiabilidade do

processamento as memoacuterias magneacuteticas permitiram o acesso mais raacutepido aos dados maior

capacidade de armazenamento e computadores menores

Surgiram os primeiros sistemas operacionais para tentar automatizar as tarefas manuais

ateacute entatildeo realizadas e as primeiras linguagens de programaccedilatildeo como Assembly e Fortran Os

programas deixaram de ser feitos diretamente no hardware o que facilitou enormemente o

processo de desenvolvimento de programas Surgiu o processamento em batch em que um lote

(batch) de programas e de dados era submetido ao computador por vez

Terceira geraccedilatildeo (1966-1980)

Circuitos Integrados e Multiprogramaccedilatildeo

Por meio dos circuitos integrados e posteriormente dos microprocessadores foi possiacutevelviabilizar e difundir o uso de sistemas computacionais por empresas devido agrave diminuiccedilatildeo de seus

custos de aquisiccedilatildeo Houve um aumento no poder de processamento e diminuiccedilatildeo no tamanho

dos equipamentos

A evoluccedilatildeo dos processadores de entradasaiacuteda permitiu que enquanto um programa

esperasse por uma operaccedilatildeo de leituragravaccedilatildeo o processador executasse um outro programa

Para tal a memoacuteria foi dividida em particcedilotildees em que um programa esperava sua vez para ser

processado A essa teacutecnica de compartilhamento da memoacuteria principal e processador deu-se onome de multiprogramaccedilatildeo

QUARTA GERACcedilAtildeO (1981-1990)

Computadores Pessoais

Os mini e superminicomputadores se firmaram no mercado e os microcomputadores

ganharam um grande impulso Surgem as estaccedilotildees de trabalho (workstations) que apesar de

monousuaacuterias permitem que se executem diversas tarefas concorrentemente criando o conceito

de multitarefa

No final dos anos 80 os computadores tiveram um grande avanccedilo decorrente de aplicaccedilotildees que

exigiam um enorme volume de caacutelculos Para acelerar o processamento foram adicionados

outros processadores exigindo dos sistemas operacionais novos mecanismos de controle e

sincronismo Com o multiprocessamento foi possiacutevel a execuccedilatildeo de mais de um programa

simultaneamente ou ateacute de um mesmo programa por mais de um processador Foram

introduzidos processadores vetoriais e teacutecnicas de paralelismo de processamento fazendo com

que os computadores se tornassem ainda mais poderosos

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1465

14

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O uso das redes distribuiacutedas se difundiu por todo o mundo permitindo o acesso a outros

sistemas de computaccedilatildeo independentemente de cidade paiacutes e ateacute mesmo fabricante Os

softwares de rede passaram a estar intimamente relacionados com o sistema operacional de cada

maacutequina e surgem os sistemas operacionais de rede

QUINTA GERACcedilAtildeO (1991ATUALMENTE)

Houve grandes avanccedilos em termos de hardware software e telecomunicaccedilotildees como

consequecircncia da evoluccedilatildeo das aplicaccedilotildees que necessitavam cada vez mais de capacidade de

processamento e armazenamento de dados Sistemas especialistas sistemas multimiacutedia bancos

de dados distribuiacutedos inteligecircncia artificial e redes neurais satildeo apenas alguns exemplos da

necessidade cada vez maior de informaccedilatildeo e de capacidade de processamento O conceito de

processamento distribuiacutedo eacute explorado nos sistemas operacionais de forma que suas funccedilotildees

estejam espalhadas por vaacuterios processadores atraveacutes de redes de computadores A deacutecada de 90 foi definitiva para a consolidaccedilatildeo dos sistemas operacionais baseados em

interfaces graacuteficas

Atualmente temos as plataformas multicore (vaacuterios nuacutecleos) disponiacuteveis em computadores

pessoais e ateacute notebooks possibilitando cada vez mais a paralelizaccedilatildeo de aplicaccedilotildees e elevando

em muito o tempo de execuccedilatildeo dos programas Os fanaacuteticos pelos jogos de computador que o

digam

Os sistemas operacionais - satildeo parte fundamental dos computadores satildeo responsaacuteveis pororganizar os processos (programas) que estatildeo sendo executados pelo processador criando uma

fila de processos que garante que todos receberatildeo sua parcela de processamento

Para Fixar

Escreva um breve resumo sobre o processo evolutivo dos Softwares

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________ __________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1565

15

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

PRINCIacutePAIS SISTEMAS OPERACIONAIS

Principais SO que deram iniacutecio a era Windows MCs Linux e Unix

1987 ndash Andrew Tanenbaum um professor de computaccedilatildeo holandecircs desenvolve um sistema

operacional didaacutetico simplificado mas respeitando a API do UNIX que foi batizado como Minix

1987 ndash IBM e Microsoft apresentam a primeira versatildeo do OS2 um sistema multitarefa destinado

a substituir o MS-DOS e o Windows Mais tarde as duas empresas rompem a parceria a IBM

continua no OS2 e a Microsoft investe no ambiente Windows

1991 ndash Linus Torvalds um estudante de graduaccedilatildeo Finlandecircs inicia o desenvolvimento do Linux

lanccedilando na rede Usenet o nuacutecleo 001 logo abraccedilado por centenas de programadores ao redor

do mundo

1993 ndash a Microsoft lanccedila o Windows NT o primeiro sistema 32 bits da empresa

Capiacutetulo 2 ndash Banco de Dados

Banco de dados eacute um arquivo especial que armazena dados arrumados sob forma de

tabelas ou matrizes (em linhas e colunas) Quando um conjunto de informaccedilotildees possui muitasvariaacuteveis interligadas entre si eacute aconselhaacutevel que sejam armazenadas e trabalhadas em um

banco de dados Os bancos de dados fornecem uma seacuterie de funcionalidades que natildeo satildeo

encontradas em arquivos comuns ldquoBancos de dados satildeo coleccedilotildees de informaccedilotildees que se

relacionam de forma que crie um sentidordquo Satildeo de vital importacircncia para empresas e haacute duas

deacutecadas se tornaram a principal peccedila dos sistemas de informaccedilatildeo ldquoFonte Wikipeacutediardquo

Entatildeo um banco de dados eacute uma entidade na qual eacute possiacutevel armazenar dados de maneira

estruturada e com a menor redundacircncia possiacutevel Estes dados devem poder ser utilizadas porprogramas por usuaacuterios diferentes Assim a noccedilatildeo baacutesica de dados eacute acoplada geralmente a

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1665

16

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

uma rede a fim de poder pocircr conjuntamente estas informaccedilotildees daiacute o nome banco Fala-se

geralmente de sistema de informaccedilatildeo para designar toda a estrutura que reuacutene os meios

organizados para poder compartilhar dados

DADOS amp INFORMACcedilOtildeES

Muitos consideram dados e informaccedilotildees como palavras sinocircnimas mas na verdade natildeo satildeo

Para entender o que eacute um banco de dados eacute muito importante saber a diferenccedila entre essas duas

palavras

Dados satildeo fatos brutos em sua forma primaacuteria E muitas vezes os dados podem natildeo fazer

sentido sozinhos

Informaccedilotildees consistem no agrupamento de dados de forma organizada para fazer sentido

gerar conhecimento

Por exemplo o nuacutemero 2001 isoladamente faz algum sentido Natildeo Isso eacute um dado E se eu

dissesse ldquoAno do atentado terrorista agraves torres gecircmeas 2001Prime Agora faz sentido Isso eacute

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1765

17

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

uma informaccedilatildeo Um banco de dados eacute uma estrutura de dados organizada que permite a

extraccedilatildeo de informaccedilotildees

Metadados ndash Eacute todo dado relativo a outro dado eacute chamado de metadados No exemplo anterior

do ano 2001 o dado ldquoAno do atentado terrorista agraves torres gecircmeasrdquo eacute um metadado pois ele eacute um

dado sobre o dado ldquo2001rdquo Outro exemplo mais comum em banco de dados o campo telefone da

tabela cliente tem entre outros os seguinte metadados nome (telefone) tipo (texto) tamanho (30

caracteres) obrigatoriedade (natildeo) etc

Um banco de dados eacute formado por dado e metadados Sem os metadados natildeo seria

possiacutevel organizar e extrair informaccedilotildees de um banco de dados

Para Fixar

Dados - Em informaacutetica designa-se por dados os elementos de partida que servem de base

para o tratamento e sobre os quais o computador efetua as operaccedilotildees necessaacuterias agrave tarefa emquestatildeo

Os dados satildeo uma representaccedilatildeo dos fatos conceitos ou instruccedilotildees de uma maneira

normalizada que se adapte agrave comunicaccedilatildeo interpretaccedilatildeo e processamento pelo ser humano ou

atraveacutes de maacutequinas automaacuteticas

Os dados satildeo representados por siacutembolos como por exemplo as letras do alfabeto a b c

etc mas natildeo satildeo em si a informaccedilatildeo desejada

ExemploO I O C O M B - satildeo dados mas natildeo eacute informaccedilatildeo perceptiacutevel ao homem

A informaccedilatildeo natildeo eacute mais do que dados organizados e ordenados de forma uacutetil Isto eacute informaccedilatildeo

eacute o conhecimento produzido como resultado do processamento de dados

Se processarmos os dados que tiacutenhamos anteriormente entatildeo obtemos a informaccedilatildeo

O I O C O M B - Dados

- Processamento

C O M B O I O ndash Informaccedilatildeo

Para fixar

Escreva o significado de

Dados___________________________________________________________________

_________________________________________________________________________

Informaccedilatildeo_______________________________________________________________

_________________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1865

18

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Metadados_______________________________________________________________

_________________________________________________________________________

Banco de

dados___________________________________________________________________

_________________________________________________________________________

A histoacuteria dos bancos de dados

Hoje os bancos de dados satildeo essenciais para muitas empresas e estatildeo no coraccedilatildeo de

muitos sistemas computacionais Ter acesso raacutepido agraves informaccedilotildees eacute muito importante para a

correta tomada de decisotildees em um negoacutecio Se vocecirc pretende trabalhar com desenvolvimento de

softwares com certeza precisaraacute trabalhar com bancos de dados em algum momento Conhecer

a histoacuteria dos bancos de dados e como eles evoluiacuteram eacute muito importante para entender como os

bancos de dados mais comuns satildeo organizados Entatildeo como aconteceu a evoluccedilatildeo dos bancos

de dados

Antigamente as empresas armazenavam dados em fichas de papel que eram organizadas

em arquivos fiacutesicos atraveacutes de pastas Extrair informaccedilotildees e manter esses arquivos organizados

era uma tarefa muito custosa Aleacutem disso o acesso agrave informaccedilatildeo dependia da localizaccedilatildeo

geograacutefica dos arquivos Enfim esses arquivos fiacutesicos evoluiacuteram para arquivos digitais No iniacutecio

cada entidade (clientes funcionaacuterios produtos etc) era um arquivo de dados que eram

acompanhados de um ldquosoftware simplesrdquo para manipular os dados do arquivo esses softwares

permitiam realizar operaccedilotildees de cadastro alteraccedilatildeo exclusatildeo e consulta nos arquivos digitais De

fato melhorou bastante principalmente a tarefa de consulta de informaccedilotildees poreacutem os arquivos

digitais eram ainda uma versatildeo melhorada dos arquivos fiacutesicos

Mas as entidades precisavam relacionar-se por exemplo um produto eacute fornecido por

um fornecedor e com os arquivos digitais relacionaacute-las natildeo era uma tarefa muito trivial os

ldquosoftwares simplesrdquo para manipular os arquivos digitais comeccedilaram a ficar ldquocomplexosrdquo para

permitir os relacionamentos entre entidades Entatildeo na deacutecada de 60 a empresa IBM investiu

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1965

19

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

fortemente em pesquisas para solucionar estes problemas dos bancos de dados digitais

primitivos Vaacuterios modelos de bancos de dados surgiram nesta eacutepoca dentre eles os modelos

hieraacuterquicos e rede

Em junho de 1970 o pesquisador Edgar Frank ldquoTedrdquo Codd da IBM mudou a histoacuteria dos

bancos de dados apresentando o modelo relacional no artigo intitulado ldquoA Relational Model of

Data for Large Shared Data Banksrdquo (Um modelo relacional de dados para grandes bancos de

dados compartilhados) onde o autor apresentou uma forma de usuaacuterios sem conhecimento

teacutecnico armazenarem e extraiacuterem grandes quantidades de informaccedilotildees de um banco de dados

Esse artigo foi o grande impulso para a evoluccedilatildeo dos bancos de dados a partir do artigo de ldquoTedrdquo

Codd que os cientistas aprofundaram a ideia de criar o modelo de banco de dados relacional

BANCO DE DADOS RELACIONAL

Apesar de ter sido o marco dos bancos de dados relacionais o artigo de Codd natildeo foimuito explorado no iniacutecio Soacute no final da deacutecada de 70 que foi desenvolvido um sistema baseado

nas ideias do cientista o ldquoSistema Rrdquo Junto com esse sistema foi criado a linguagem de consulta

estruturada (SQL ndash Structured Query Language) que se tornou a linguagem padratildeo para bancos

de dados relacionais Embora tenha contribuiacutedo para a evoluccedilatildeo dos bancos de dados

relacionais o ldquoSystem Rrdquo natildeo foi muito bem sucedido comercialmente mas os sistemas de banco

de dados seguintes foram baseados nele

Nos anos 80 surgiram outros bancos de dados a Oracle apresentou o Oracle 2 e a IBMo SQLDS (que se tornou DB2) ambos sistemas comerciais de bancos de dados Na sequencia

vieram SQL Server MySQL DBase III Paradox etchellip

BANCOS DE DADOS HOJE

Atualmente existem vaacuterios modelos de bancos de dados tais como orientado a objetos

orientado a documentos etc Mas o mais comum ainda eacute o banco de dados relacional A decisatildeo

entre qual modelo de banco de dados utilizarem baseia-se no tipo de dados que vocecirc pretende

armazenar Por exemplo se vocecirc for armazenar uma grande quantidade de dados em um modelo

pequeno (imagine um banco de dados para o twitter) eacute mais indicado utilizar um banco de dados

orientado a documentos a um banco de dados relacional Muitas questotildees envolvem essa

decisatildeo mas natildeo eacute uma questatildeo de superioridade entre uma ou outra tecnologia todas tecircm proacutes

e contras e satildeo mais indicadas ou natildeo para cada problema

Para fixar

Faccedila um breve resumo sobre o surgimos dos bancos de dados

______________________________________________________________________________

______________________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2065

20

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

Dados amp Informaccedilatildeo

A informaccedilatildeo eacute encarada atualmente como um dos recursos mais importantes de uma

organizaccedilatildeo contribuindo decisivamente para a sua maior ou menor competitividade De fato

com o aumento da concorrecircncia tornou-se vital melhorar as capacidades de decisatildeo a todos osniacuteveis

Hoje mais que nunca a tomada de decisatildeo nas organizaccedilotildees eacute um processo complexo

dada a qualidade de informaccedilatildeo em jogo a sua complexidade e a frequecircncia com que se altera

No entanto para que possa ser utilizada com um apoio eficaz agrave tomada de decisatildeo a informaccedilatildeo

soacute tecircm valor se verificarem simultaneamente algumas condiccedilotildees

ATUALIDADE ndash O valor da informaccedilatildeo dependeraacute em grande parte da sua atualidade

Dado o dinamismo verificado em todos os setores da sociedade em geral e do ambiente

empresarial em particular o periacuteodo de validade da informaccedilatildeo eacute cada vez mais curto Torna-se

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2165

21

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

necessaacuterio dispor de fontes de informaccedilatildeo que acompanhem continuamente essas modificaccedilotildees

Soacute com base em informaccedilatildeo atualizada se podem tomar decisotildees acertadas

CORRECcedilAtildeO ndash Natildeo basta que a informaccedilatildeo seja atual eacute tambeacutem necessaacuterio que na

medida do possiacutevel seja rigorosa Soacute com informaccedilatildeo correta se pode decidir com confianccedila

RELEVAcircNCIA ndash Dado o grande de volume de informaccedilatildeo envolvida o processo de tomada

de decisatildeo ao contraacuterio de ser facilitado pode ser dificultado pelo excesso de informaccedilatildeo A

informaccedilatildeo deve ser devidamente filtrada de tal forma que apenas aquela com relevacircncia para

cada situaccedilatildeo seja considerada

DISPONIBILIDADE ndash Ainda que a informaccedilatildeo verifique os trecircs requisitos anteriores a sua

utilidades poderaacute ser posta em causa se natildeo puder ser disponibilizada de forma imediata no

momento em que eacute solicitada As decisotildees muito ponderadas com o longo periacuteodo de gestaccedilatildeo

satildeo cada vez mais situaccedilotildees do passado Hoje dadas as caracteriacutesticas do meio envolvente oprocesso de tomada de decisatildeo tem que ser quase instantacircneo Para isso a informaccedilatildeo tem que

ser disponibilizada rapidamente caso contraacuterio deixa de ser uacutetil

LEGIBILIDADE - Esta condiccedilatildeo apesar de apresentada em uacuteltimo lugar natildeo eacute por isso

menos importante A informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada

De fato de nada vale que a informaccedilatildeo seja atual precisa relevante e disponibilizada em

tempo oportuno se natildeo puder ser entendida A forma como eacute disponibilizada tem tambeacutem grande

importacircncia informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada A forma como eacutedisponibilizada tem tambeacutem grande importacircncia

Quanto aos requisitos de atualidade e correccedilatildeo da informaccedilatildeo para que esta possa ser

correta e atual os dados de onde eacute derivada tecircm forccedilosamente que ser precisos e atualizados

Quanto aos requisitos de relevacircncia disponibilidade e legibilidade da informaccedilatildeo estes tecircm mais

a ver com os meios utilizados para o processamento dos dados

Como eacute que a informaccedilatildeo eacute organizada

A organizaccedilatildeo da informaccedilatildeo eacute efetuada de acordo com criteacuterios distintos como

Hierarquia dos seus componentes

O tipo de assunto a que se refere

Forma de armazenamento

Quanto agrave HIERARQUIA DOS COMPONENTES DA INFORMACcedilAtildeO esta eacute organizada em

Caracteres Campos Registros Ficheiros Caracteres - podem ser numeacutericos alfabeacuteticos ou

sinais de pontuaccedilatildeo Campos - satildeo conjuntos de caracteres que identificam um componente de

um registo Registos - satildeo agrupamentos de campos descritivos de uma realidade Ficheiros - satildeo

conjuntos de registos cuja informaccedilatildeo eacute estruturalmente analoacutegica

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2265

22

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Quanto AO TIPO DE ASSUNTO a que se refere agrave informaccedilatildeo

Esta pode ser como que etiquetada de modo a tornar faacutecil a sua procura e a evitar perdas

de tempo

Quando a informaccedilatildeo estaacute armazenada em ficheiros estes indicam o seu tipo atraveacutes de

uma extensatildeo ao nome do ficheiro

Algumas das extensotildees mais comuns satildeo

- COM ficheiro de comandos - BACK backup ou coacutepias de seguranccedila- EXE executaacuteveis - SYS ficheiros de sistema

- BAT processamento batch - XLS folha de caacutelculo provenientes do Excel

- TXT texto no formato ASCII - PPT apresentaccedilotildees provenientes do PowerPoint

- PAS programas em Linguagem Pascal - MBD base de dados provenientes do Access

- C programas em Linguagem C - DOC documentos provenientes de um processador de

texto

Quanto Agrave FORMA DE ARMAZENAMENTO da informaccedilatildeoRelativamente ao armazenamento por exemplo no disco riacutegido do computador a

informaccedilatildeo eacute organizada em diretorias cujo nome revela o tipo de ficheiros que aiacute se encontram

podendo cada diretorias conter diversas subdiretorias

Organizaccedilatildeo dos dados num Computador

Os dados que fornecemos a um computador para processar podem ser de trecircs tipos

quantitativos classificativos referenciais

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2365

23

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Dados quantitativos - satildeo os que exprimem quantidades e por isso normalmente servem

de base para caacutelculos aritmeacuteticos Exemplo a ficha escolar as notas do periacuteodo as faltas o total

das faltas

bull Dados classificativos - satildeo os que descrevem ou especificam os elementos envolvidos e

quantificados Normalmente servem de complemento aos dados quantitativos identificando

pessoas objetos situaccedilotildees etc Natildeo servem portanto para elementos de caacutelculo Exemplo a

ficha escolar o nome do aluno o nome da disciplina o nome do professor

bull Dados referenciais - satildeo dados que permitem controlar e referenciar os elementos

tratados Exemplo a ficha escolar o ano letivo o nuacutemero do aluno a turma

Para fixar

Escreva de forma resumida como podemos organizar os dados

_________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

Tipos de Operaccedilotildees realizadas sobre os dados

O tipo de operaccedilotildees efetuadas depende dos objetivos do processamento e igualmente dostipos de dados nele envolvidos pois o computador pode processar dados numeacutericos ou natildeo

numeacutericos Assim temos como operaccedilotildees possiacuteveis num processamento

bull Operaccedilotildees aritmeacuteticas - satildeo efetuadas apenas sobre dados numeacutericos e satildeo

basicamente constituiacutedas por somas subtraccedilotildees multiplicaccedilotildees divisotildees e outras similares

bull Operaccedilotildees loacutegicas - satildeo efetuadas sobre dados numeacutericos ou natildeo numeacutericos Estas

operaccedilotildees satildeo tambeacutem por vezes designadas por operaccedilotildees de comparaccedilatildeo

bull Operaccedilotildees de movimentaccedilatildeo interna - satildeo efetuadas sobre qualquer tipo de dados e

consistem na coacutepia e mudanccedila de localizaccedilatildeo interna dos dados na memoacuteria do computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2465

24

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Operaccedilatildeo de InputOutput - satildeo as operaccedilotildees que envolvem os oacutergatildeos de entrada e

saiacuteda permitindo a comunicaccedilatildeo entre o operador e a maacutequina

Funccedilotildees do processamento de dados

Considera-se como processamento de dados o conjunto de todas as operaccedilotildees efetuadas desde

a entrada dos dados ateacute agrave saiacuteda da informaccedilatildeo Todas estas operaccedilotildees de vaacuterios tipos satildeo

normalmente associadas a seis funccedilotildees do processamento de dados input ordenaccedilatildeo

processamento armazenamento output e controle

bull Input - fase de seleccedilatildeo e aquisiccedilatildeo dos dados pelo computador

bull Ordenaccedilatildeo - esta eacute uma funccedilatildeo auxiliar O seu objetivo eacute dispor os dados de uma forma

organizada (ordenada) de modo a facilitar o seu tratamento Se os dados se mantiverem

ordenados segundo um determinado criteacuterio preacute-definido a sua pesquisa eacute mais faacutecil o que faz

aumentar a velocidade do processamento

bull Processamento - considera-se processamento ao conjunto de todas as operaccedilotildees

efetuadas internamente pelo computador na manipulaccedilatildeo dos dados

bull Armazenamento - esta eacute uma funccedilatildeo muito importante que permite posteriormente

analisar as etapas e os resultados do processamento

bull Output - eacute a obtenccedilatildeo de resultados sob a forma de informaccedilatildeo significativa para as

pessoas a quem se destina

bull Controle - a sua finalidade eacute detectar corrigir e eliminar possiacuteveis erros ou afastamentosem relaccedilatildeo aos objetivos inicialmente traccedilados

Utilidade de um banco de dados

Um banco de dados permite pocircr dados agrave disposiccedilatildeo de usuaacuterios para uma consulta uma

introduccedilatildeo ou uma atualizaccedilatildeo assegurando-se dos direitos atribuiacutedos a estes uacuteltimos Isso eacute

ainda mais uacutetil quando os dados informaacuteticos satildeo cada vez mais numerosos

Um banco de dados pode ser local quer dizer utilizaacutevel em uma maacutequina por um usuaacuterio

ou repartida quer dizer que as informaccedilotildees satildeo armazenadas em maacutequinas distantes eacessiacuteveis por rede A vantagem essencial da utilizaccedilatildeo dos bancos de dados eacute a possibilidade

de poder ser acessada por vaacuterios usuaacuterios simultaneamente

A gestatildeo dos bancos de dados

A fim de poder controlar os dados bem como os usuaacuterios a necessidade de um sistema de

gestatildeo fez-se sentir rapidamente A gestatildeo do banco de dados faz-se graccedilas a um sistema

chamado SGBD (sistema de gestatildeo de bancos de dados) ou em inglecircs DBMS (Database

managment system) O SGBD eacute um conjunto de serviccedilos (aplicaccedilotildees software) que permitem

gerenciar os bancos de dados quer dizer

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2565

25

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Permitir o acesso aos dados de maneira simples

Autorizar um acesso agraves informaccedilotildees a muacuteltiplos usuaacuterios

Manipular os dados presentes no banco de dados (inserccedilatildeo supressatildeo modificaccedilatildeo)

O SGBD pode decompor-se em trecircs subsistemas

O sistema de gestatildeo de arquivos permite o armazenamento das informaccedilotildees num suporte

fiacutesico

O SGBD interno gerencia a emissatildeo das informaccedilotildees

O SGBD externo representa a interface com o usuaacuterio

Bancos de dados satildeo conjuntos de dados com uma estrutura regular que organizam

informaccedilatildeo Um banco de dados normalmente agrupa informaccedilotildees utilizadas para um mesmo fim

O modelo de dados mais adotado hoje em dia eacute o modelo relacional onde as estruturas

tecircm a forma de tabelas compostas por linhas e colunas

Resumindo um banco de dados eacute uma coleccedilatildeo de dados relacionados Entende-se por

dado toda a informaccedilatildeo que pode ser armazenada e que apresenta algum significado impliacutecito

dentro do contexto ao qual ele se aplica Por exemplo num sistema bancaacuterio uma pessoa eacuteidentificada pelo seu cpf(cliente) Em um sistema escolar a pessoa eacute identificada pelo seu nuacutemero

de matriacutecula(aluno) Aleacutem disso os dados que seratildeo armazenados em cada situaccedilatildeo podem

diferir consideravelmente

Atividades

1) Onde utilizar um banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2665

26

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2) Como funciona um sistema gerenciador de banco de dados

3) Como funciona o modelo relacional

Modelo Relacional

O modelo relacional eacute uma teoria matemaacutetica desenvolvida por Edgar Frank Codd para

descrever como as bases de dados devem funcionar Embora esta teoria seja a base para o

software de bases de dados relacionais muito poucos sistemas de gestatildeo de bases de dados

seguem o modelo de forma restrita e todos tecircm funcionalidades que violam a teoria desta forma

variando a complexidade e o poder A discussatildeo se esses bancos de dados merecem ser

chamados de relacional ficou esgotada com tempo com a evoluccedilatildeo dos bancos existentes

De acordo com a arquitetura ANSI SPARC em trecircs niacuteveis os Bancos de dados

relacionais consistem de trecircs componentes

bull uma coleccedilatildeo de estruturas de dados formalmente chamadas de relaccedilotildees ou

informalmente tabelas compondo o niacutevel conceitual

bull uma coleccedilatildeo dos operadores a aacutelgebra e o caacutelculo relacionais que constituem a base da

linguagem SQL

bull uma coleccedilatildeo de restriccedilotildees da integridade definindo o conjunto consistente de estados de

base de dados e de alteraccedilotildees de estados As restriccedilotildees de integridade podem ser de quatro

tipos

bull domiacutenio (ou tipo de dados) bull atributo

bull restriccedilotildees de base de dados

De acordo com o Princiacutepio de Informaccedilatildeo toda informaccedilatildeo tem de ser representada como dados

qualquer tipo de atributo representa relaccedilotildees entre conjuntos de dados

Nos bancos de dados relacionais os relacionamentos entre as tabelas natildeo satildeo codificados

explicitamente na sua definiccedilatildeo Em vez disso se fazem implicitamente pela presenccedila de

atributos chave As bases de dados relacionais permitem aos utilizadores (incluindo

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2765

27

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

programadores) escreverem consultas (queries) reorganizando e utilizando os dados de forma

flexiacutevel e natildeo necessariamente antecipada pelos projetistas originais

Esta flexibilidade eacute especialmente importante em bases de dados que podem ser utilizadas

durante deacutecadas tornando as bases de dados relacionais muito populares no meio comercial

Um dos pontos fortes do modelo relacional de banco de dados eacute a possibilidade de

definiccedilatildeo de um conjunto de restriccedilotildees de integridade Estas definem os conjuntos de estados e

mudanccedilas de estado consistentes do banco de dados determinando os valores que podem e os

que natildeo podem ser armazenados

Aplicaccedilotildees de bancos de dados

Bancos de dados satildeo usados em muitas aplicaccedilotildees enquanto atravessando virtualmente a

gama inteira de software de computador Bancos de dados eacute o meacutetodo preferido de

armazenamento para aplicaccedilotildees multiusuaacuterias grandes onde a coordenaccedilatildeo entre muitosusuaacuterios eacute necessaacuteria Ateacute mesmo usuaacuterios individuais os acham convenientes entretanto e

muitos programas de correio eletrocircnico e os organizadores pessoais estatildeo baseados em

tecnologia de banco de dados standard

Aplicativo de Banco de Dados

Um aplicativo de banco de dados eacute um tipo de software exclusivo para gerenciar um banco

de dados Aplicativos de banco de dados abrangem uma vasta variedade de necessidades e

objetivos de pequenas ferramentas como uma agenda ateacute complexos sistemas empresariaispara desempenhar tarefas como a contabilidade

O termo Aplicativo de Banco de dados usualmente se refere a softwares que oferecem

uma interface para o banco de dados Exemplos de aplicativos de banco de dados satildeo Microsoft

Visual FoxPro Microsoft Access dBASE FileMaker (em certa medida) HyperCard MySQL

PostgreSQL Microsoft SQL Server e Oracle

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2865

28

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Capiacutetulo 3 - HARDWARE E SOFTWARE

O QUE Eacute O HARDWARE

No acircmbito da informaacutetica eacute dada a designaccedilatildeo de hardware a todos os componentes

fiacutesicos que fazem parte de um sistema informaacutetico incluiacutedo toda a parte fiacutesica de um computador

(nomeadamente os processadores motherbord disco riacutegido placas de som placas de viacutedeo

memoacuterias etc) e todos os perifeacutericos (tais como teclados mouse monitores impressoras

scanners modems entre outros)

Peccedilas de um computador

Se vocecirc usa um computador desktop jaacute deve saber que natildeo existe uma parte uacutenica

chamada computador Um computador eacute na verdade um sistema de muitas partes funcionando

em conjunto As partes fiacutesicas que vocecirc pode ver e tocar satildeo denominadas

coletivamente hardware (O software por outro lado se refere agraves instruccedilotildees ou programas que

dizem ao hardware o que fazer)

A ilustraccedilatildeo a seguir mostra os dispositivos de hardware mais comuns em um sistema de

computador desktop Seu sistema pode ter uma aparecircncia um pouco diferente mas

provavelmente possui a maioria destas peccedilas Um computador laptop possui peccedilas semelhantes

mas as combina em um uacutenico pacote do tamanho de um caderno

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2965

29

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Sistema de computador desktop

Unidade de sistema

A unidade de sistema (Gabinete) eacute o nuacutecleo de um sistema de computador Normalmente

eacute uma caixa retangular colocada sobre a mesa ou embaixo dela Dentro dessa caixa estatildeo os

componentes eletrocircnicos que processam as informaccedilotildees O mais importante desses

componentes eacute a CPU (unidade de processamento central) ou microprocessador que atua como

o ceacuterebro do computador Outro componente eacute a memoacuteria RAM que armazena

temporariamente informaccedilotildees utilizadas pela CPU enquanto o computador estaacute ligado As

informaccedilotildees gravadas na RAM satildeo apagadas quando o computador eacute desligado

Quase todas as outras partes do computador se conectam agrave unidade de sistema por meio

de cabos Os cabos satildeo conectados aportas (aberturas) especiacuteficas geralmente na parte traseira

da unidade de sistema O hardware que natildeo faz parte da unidade de sistema eacute

chamado dispositivo perifeacuterico ou simplesmente dispositivo

Unidade de sistema

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3065

30

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Armazenamento

O computador possui uma ou mais unidades de disco ou seja dispositivos que armazenam

informaccedilotildees em um disco de plaacutestico ou de metal O disco preserva as informaccedilotildees mesmo

quando o computador estaacute desligado

Unidade de disco riacutegido

A unidade de disco riacutegido do computador armazena informaccedilotildees em um disco riacutegido que eacute um

prato riacutegido ou pilha de pratos com uma superfiacutecie magneacutetica Como os discos riacutegidos podem

reter uma grande quantidade de informaccedilotildees normalmente eles funcionam como principal meio

de armazenamento do computador guardando praticamente todos os programas e arquivos Em

geral a unidade de disco riacutegido fica localizada dentro da unidade de sistema

Unidade de disco riacutegidoUnidades de CD e DVD

Hoje em dia quase todos os computadores vecircm equipados com uma unidade de CD ou DVD

geralmente localizada na frente da unidade de sistema As unidades de CD usam lasers para ler

(recuperar) dados de um CD Muitas delas tambeacutem podem gravar dados em CDs Se vocecirc tiver

uma unidade de disco gravaacutevel poderaacute armazenar coacutepias de seus arquivos em CDs vazios A

unidade de CD tambeacutem serve para tocar CDs de muacutesica no computador

CD

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3165

31

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

As unidades de DVD fazem o mesmo que as unidades de CD e tambeacutem lecircem DVDs Se vocecirc

tiver uma unidade de DVD poderaacute ver filmes no computador Muitas unidades de DVD podem

gravar dados em DVDs vazios

Dica

Se vocecirc tiver uma unidade de CD ou DVD gravaacutevel faccedila backup (copie) periodicamente de seus

arquivos importantes em CDs ou DVDs Dessa forma caso venha a ocorrer alguma falha no disco

riacutegido vocecirc natildeo perderaacute os dados

Unidade de disquete

As unidades de disquete armazenam informaccedilotildees em discos tambeacutem chamados discos

flexiacuteveis ou disquetes Comparado a CDs e DVDs os disquetes podem armazenar apenas uma

pequena quantidade de dados Eles tambeacutem recuperam informaccedilotildees de forma mais lenta e satildeo

mais vulneraacuteveis a danos Por esses motivos as unidades de disquete satildeo cada vez menosusadas embora ainda sejam incluiacutedas em alguns computadores

Disquete

Por que estes discos satildeo chamados de disquetes Apesar de a parte externa ser composta de

plaacutestico riacutegido isso eacute apenas a capa O interior do disco eacute feito de um material de vinil fino e

flexiacutevel

Mouse

Mouse eacute um pequeno dispositivo usado para apontar e selecionar itens na tela do computador

Embora existam mouses de vaacuterias formas o modelo mais comum se assemelha a um rato (como

diz o nome em inglecircs) Ele eacute pequeno e alongado sendo conectado agrave unidade de sistema por um

cabo comprido que faz lembrar uma cauda Alguns mouses mais novos satildeo sem fio

Mouse

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3265

32

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O mouse geralmente possui dois bototildees um botatildeo principal (normalmente o da esquerda) e um

botatildeo secundaacuterio Muitos mouses tambeacutem tecircm uma roda entre os dois bototildees que permite

percorrer as telas de informaccedilotildees

Ponteiros do mouse

Agrave medida que vocecirc move o mouse com a matildeo um ponteiro na tela se move na mesma direccedilatildeo

(A aparecircncia do ponteiro pode mudar dependendo da sua posiccedilatildeo na tela) Quando quiser

selecionar um item aponte para ele e clique no botatildeo principal ou seja pressione-o e solte-o

Apontar e clicar com o mouse eacute a principal maneira de interagir com o computador Para mais

informaccedilotildees consulte Usando o mouse

Teclado

A finalidade principal do teclado eacute digitar texto no computador Ele possui teclas para letras e

nuacutemeros exatamente como em uma maacutequina de escrever A diferenccedila estaacute nas teclas especiais

As teclas de funccedilatildeo localizadas na linha superior executam funccedilotildees diferentes dependendo

de onde satildeo usadas

O teclado numeacuterico localizado agrave direita na maioria dos teclados permite inserir nuacutemeros

rapidamente

As teclas de navegaccedilatildeo como as teclas de seta permitem mover sua posiccedilatildeo dentro de

documentos ou paacuteginas da Web

Teclado

Vocecirc tambeacutem pode usar o teclado para executar muitas das mesmas tarefas que executa com

um mouse Para mais informaccedilotildees consulte Usando o teclado

Monitor

O monitor exibe informaccedilotildees em forma visual usando texto e elementos graacuteficos A parte do

monitor que exibe as informaccedilotildees eacute chamada tela Como a tela de uma televisatildeo a tela de um

computador pode mostrar imagens paradas ou em movimento

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3365

33

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Existem dois tipos baacutesicos de monitores CRT (tubo de raios catoacutedicos) e LCD (viacutedeo de cristal

liacutequido) Ambos produzem imagens niacutetidas mas os monitores LCD levam vantagem por serem

mais finos e mais leves

Monitor LCD (agrave esquerda) monitor CRT (agrave direita)

Impressora

Uma impressora transfere dados de um computador para o papel Vocecirc natildeo precisa de

impressora para usar o computador mas se tiver uma poderaacute imprimir emails cartotildees convites

anuacutencios e outros materiais Muitas pessoas tambeacutem preferem imprimir suas fotos em casa

Os dois principais tipos de impressora satildeo a jato de tinta e a laser As impressoras a jato de tinta

satildeo as mais populares para uso domeacutestico Elas podem imprimir em preto e branco ou em cores

e produzem fotos de alta qualidade quando usadas com papel especial As impressoras a laser

satildeo mais raacutepidas e mais adequadas para uso intenso

Impressora a jato de tinta (agrave esquerda) impressora a laser (agrave direita)

Alto-falantes

Os alto-falantes satildeo usados para tocar som Eles podem vir embutidos na unidade de sistema ou

ser conectados com cabos Satildeo eles que permitem ouvir muacutesica e efeitos de som no computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3465

34

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Alto-falantes do computador

Modem

Para conectar o computador agrave Internet vocecirc precisa de um modem um dispositivo que envia e

recebe informaccedilotildees do computador por linha telefocircnica ou cabo de alta velocidade Agraves vezes os

modems vecircm embutidos na unidade de sistema mas os de alta velocidade normalmente satildeo

componentes separados

Modem a cabo

O QUE Eacute O SOFTWARE

O Software eacute uma aplicaccedilatildeo ou programa do computador escrita numa determinadalinguagem interpretaacutevel por uma determinada maacutequina (o processador de um computador ou

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3565

35

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

outro equipamento) e que permite executar determinadas tarefas para as quais o software foi

projetado Estes programas satildeo compostos por uma sequecircncia de instruccedilotildees (os comandos) e de

declaraccedilotildees de dados as quais satildeo armazenaacuteveis num meio digital

Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por um

computador com o objetivo de executar tarefas especiacuteficas Tambeacutem pode ser definido como

os programas que comandam o funcionamento de um computador

Em um computador o software eacute classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer

instruccedilotildees para o hardware O hardware eacute toda a parte fiacutesica que constitui o computador por

exemplo a CPU a memoacuteria e os dispositivos de entrada e saiacuteda O software eacute constituiacutedo por

todos os programas que existem para um referido sistema quer sejam produzidos pelo proacuteprio

utente ou pelo fabricante do computador

O termo inglecircs software foi usado pela primeira vez em 1958 em um artigo escrito pelo cientistaamericano John Wilder Tukey Foi tambeacutem ele o responsaacutevel por introduzir o termo bit para

designar diacutegito binaacuterio

Os softwares podem ser classificados como

SOFTWARE DE SISTEMA

Geralmente dividido em SISTEMAS OPERACIONAIS e PROGRAMAS UTILITAacuteRIOS Para

comeccedilar os Sist Operacionais satildeo de grande importacircncia pois eles nos datildeo a opccedilatildeo de dizer ao

computador o que ele deve fazer Dois exemplos bastante conhecidos do nosso puacuteblico satildeoo Mac o Windows e o Linux Os Programas utilitaacuterios geralmente satildeo softwares de menor porte

com funccedilotildees mais especificas tipo Verificaccedilatildeo de Disco Coacutepias de Seguranccedila entre outros

SOFTWARE APLICATIVO

Neste tipo de software se enquadram todos aqueles programas que satildeo utilizados na execuccedilatildeo

de tarefas especiacuteficas Posso citar vaacuterios exemplos mas os mais comuns satildeo os processadores

de texto como o Word que servem para trabalhar com os mais diversos tipos de textos emitir

etiquetas e fazer formulaacuterios as planilhas eletrocircnicas como o Excel satildeo poderosas ferramentas

de caacutelculos que facilitam tanto aquele trabalho aacuterduo de matemaacutetica fazer graacuteficos com real

representaccedilatildeo dos dados eacute uma coisa muito boa pra quem precisa e por uacuteltimo o que muitos

usam mas natildeo sabem o nome ao certo que satildeo os Browsers ou Navegadores softwares usados

para navegar na Web dentre eles os mais conhecidos atualmente satildeo Windows Internet

Explorer Firefox Google Chrome Opera e Safaacuteri

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3665

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3765

37

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

hoje eles satildeo bastante usados em situaccedilotildees de treinamentos de pessoas para enfrentar casos no

seu dia-a-dia

SOFTWARE DE JOGOS

Geralmente satildeo softwares relacionados a entretenimento para proporcionar lazer e diversatildeo

Dispotildeem de muitos recursos interativos e existem de todos os tipos desde estrateacutegias ateacute

simulaccedilotildees reais de muitas coisas como corridas (Need for Speed) ateacute mesmo de vida como o

Second Life

SOFTWARES ABERTOS

Satildeo aqueles que permitem que o usuaacuterio produza com liberdade e criatividade se classificam

nessa categoria aqueles softwares de apresentaccedilotildees bancos de dados e vaacuterios outros

Para fixar

Descreva uma definiccedilatildeo para os tipos de softwares

Software de Sistema_____________________________________________________________

Software Aplicativo ______________________________________________________________

Software de Linguagem __________________________________________________________

Software abertos _______________________________________________________________

Capiacutetulo 4 - Conceitos Baacutesicos de Banco de Dados

Segundo Korth um banco de dados ldquoeacute uma coleccedilatildeo de dados inter -relacionados

representando informaccedilotildees sobre um domiacutenio especiacuteficordquo ou seja sempre que for possiacutevel

agrupar informaccedilotildees que se relacionam e tratam de um mesmo assunto posso dizer que tenho

um banco de dados

Podemos exemplificar situaccedilotildees claacutessicas como uma lista telefocircnica um cataacutelogo de CDs ou um

sistema de controle de RH de uma empresa

Jaacute um sistema de gerenciamento de banco de dados (SGBD) eacute um software que possui

recursos capazes de manipular as informaccedilotildees do banco de dados e interagir com o usuaacuterio

Exemplos de SGBDs satildeo Oracle SQL Server DB2 PostgreSQL MySQL o proacuteprio Access ouParadox entre outros

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3865

38

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Por uacuteltimo temos que conceituar um sistema de banco de dados como o conjunto de quatro

componentes baacutesicos dados hardware software e usuaacuterios Date conceituou que ldquosistema de

bancos de dados pode ser considerado como uma sala de arquivos eletrocircnicardquo A Figura 1 ilustra

os componentes de um sistema de banco de dados

Componentes de um sistema de banco de dados

Os objetivos de um sistema de banco de dados satildeo o de isolar o usuaacuterio dos detalhes

internos do banco de dados (promover a abstraccedilatildeo de dados) e promover a independecircncia dos

dados em relaccedilatildeo agraves aplicaccedilotildees ou seja tornar independente da aplicaccedilatildeo a estrateacutegia de

acesso e a forma de armazenamento

Abstraccedilatildeo de dados

O sistema de banco de dados deve garantir uma visatildeo totalmente abstrata do banco de

dados para o usuaacuterio ou seja para o usuaacuterio do banco de dados pouco importa qual unidade de

armazenamento estaacute sendo usada para guardar seus dados contanto que os mesmos estejam

disponiacuteveis no momento necessaacuterio

Esta abstraccedilatildeo se daacute em trecircs niacuteveis (Figura 2) Niacutevel de visatildeo do usuaacuterio as partes do banco de dados que o usuaacuterio tem acesso de

acordo com a necessidade individual de cada usuaacuterio ou grupo de usuaacuterios

Niacutevel conceitual define quais os dados que estatildeo armazenados e qual o relacionamento

entre eles

Niacutevel fiacutesico eacute o niacutevel mais baixo de abstraccedilatildeo em que define efetivamente de que maneira

os dados estatildeo armazenados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3965

39

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 2 Niacuteveis de abstraccedilatildeo

Projeto de banco de dados

Todo bom sistema de banco de dados deve apresentar um projeto que visa a organizaccedilatildeo das

informaccedilotildees e utilizaccedilatildeo de teacutecnicas para que o futuro sistema obtenha boa performance e

tambeacutem facilite infinitamente as manutenccedilotildees que venham a acontecer

O projeto de banco de dados se daacute em duas fases

Modelagem conceitual Projeto loacutegico

Estas duas etapas se referem a um sistema de banco de dados ainda natildeo implementado ou seja

que ainda natildeo exista um novo projeto Para os casos em que o banco de dados jaacute exista mas eacute

um sistema legado por exemplo ou um sistema muito antigo sem documentaccedilatildeo o processo de

projeto de banco de dados se daraacute atraveacutes da utilizaccedilatildeo de uma teacutecnica chamada de Engenharia

Reversa que seraacute visto em outra oportunidade

Modelo conceitual

Eacute a descriccedilatildeo do BD de maneira independente ao SGBD ou seja define quais os dados

que apareceratildeo no BD mas sem se importar com a implementaccedilatildeo que se daraacute ao BD Desta

forma haacute uma abstraccedilatildeo em niacutevel de SGBD

Uma das teacutecnicas mais utilizadas dentre os profissionais da aacuterea eacute a abordagem entidade-

relacionamento (ER) onde o modelo eacute representado graficamente atraveacutes do diagrama entidade-

relacionamento (DER) (Figura 3)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 6: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 665

6

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ENIAC ndash PRIMEIRO COMPUTADOR

Computador integrado numeacuterico eletrocircnico foi o primeiro computador digital eletrocircnico de grandeescala O ENIAC comeccedilou a ser desenvolvido em 1946 durante a II Guerra Mundial para

computar trajetoacuterias taacuteticas que exigissem conhecimento substancial em matemaacutetica mas soacute se

tornou operacional apoacutes o final da guerra

Sua capacidade de processamento era de 5000 operaccedilotildees por segundo

Criado na segunda guerra tinha como principal finalidade caacutelculos baliacutesticos

Possuiacutea 18000 vaacutelvulas termiocircnicas de 160 kW de potecircncia

Pesava 30 Toneladas Esta maacutequina natildeo tinha sistema operacional e seu funcionamento era parecido com

uma calculadora simples de hoje O ENIAC assim como uma calculadora tinha de ser

operado manualmente

A calculadora efetua os caacutelculos a partir das teclas pressionadas fazendo interaccedilatildeo direta com o

hardware no qual era preciso conectar fios relecircs e sequecircncias de chaves para que se

determinasse a tarefa a ser executada A cada tarefa diferente o processo deveria ser refeito A

resposta era dada por uma sequecircncia de lacircmpadas A uacutenica forma de armazenar dados era

atraveacutes de cartotildees perfurados

SEGUNDA GERACcedilAtildeO DOS COMPUTADORES - (1952 - 1964)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 765

7

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Esta Geraccedilatildeo foi originada pela revoluccedilatildeo dos Transistores os quais substituiacuteram as volumosas

vaacutelvulas Houve uma enorme diminuiccedilatildeo em cabos e fios tendo em vista que cada transistor

substituiacutea dezenas de vaacutelvulas Desta maneira os computadores tornaram-se consideravelmente

menores e devido a isso muito mais velozes O computador comeccedila a ser utilizado nas grandes

empresas Projetos foram implementados baseados na utilizaccedilatildeo de transistores houve grandes

avanccedilos no que se refere agraves unidades de memoacuteria principal com a substituiccedilatildeo do sistema de

tubos de raios catoacutedicos pelo de nuacutecleos magneacuteticos (usados ateacute hoje)

A memoacuteria teve um aumento em sua capacidade de armazenamento chegando a 32K

Principais computadores IBM 1401 IBM 7094 Honeywell 800 e IBM 7090

Tanto a vaacutelvula quanto o transistor realizavam um processamento de cada vez Com o

desenvolvimento das teacutecnicas de integraccedilatildeo surgiram os Circuitos Integrados onde numa

pequena caacutepsula continha vaacuterias dezenas centenas ou milhares de transistores ocupando umaaacuterea menor que uma unha dando o nome de microprocessador (processador miniatura) A

linguagem de programaccedilatildeo foi simplificada e jaacute se podia programar atraveacutes de mnemocircnicos

(comandos abreviados) Esta linguagem denomina-se ASSEMBLER As operaccedilotildees de caacutelculos

eram realizadas em milioneacutesimos de segundos Realizando 204000 adiccedilotildeessegundos Aleacutem do

surgimento dos nuacutecleos de ferrite fitas e tambores magneacuteticos passam a ser usados como

memoacuteria

Eacute possiacutevel dividir os computadores desta geraccedilatildeo em duas grandes categoriassupercomputadores e minicomputadores

IBM 7030 tambeacutem conhecido por Strech foi o primeiro supercomputador lanccedilado na

segunda geraccedilatildeo desenvolvido pela IBM Seu tamanho era bem reduzido comparado com

maacutequinas como o ENIAC podendo ocupar somente uma sala comum Ele era utilizado por

grandes companhias custando em torno de 13 milhotildees de doacutelares na eacutepoca Esta maacutequina

executava caacutelculos na casa dos microssegundos o que permitia ateacute um milhatildeo de operaccedilotildees por

segundo Desta maneira um novo patamar de velocidade foi atingido Comparado com os da

primeira geraccedilatildeo os supercomputadores como o IBM 7030 eram mais confiaacuteveis

PDP-8 foi um dos mini-computadores mais conhecidos da segunda geraccedilatildeo Basicamente

foi uma versatildeo mais baacutesica do supercomputador sendo mais atrativo do ponto de vista financeiro

(centenas de milhotildees de doacutelares) Eram menores do que os supercomputadores mas mesmo

assim ainda ocupavam um bom espaccedilo no cocircmodo

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 865

8

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

TERCEIRA GERACcedilAtildeO DOS COMPUTADORES - (1964 - 1971)

A 3ordf Geraccedilatildeo surgiu com a utilizaccedilatildeo dos Circuitos Integrados ndash SLT (Solid Logic Technolo-

gy) uma teacutecnica de micro circuitos Nesta geraccedilatildeo os computadores podiam realizar vaacuterios

processamentos simultacircneos As teacutecnicas de integraccedilatildeo evoluiacuteram de SSI (integraccedilatildeo em

pequena escala) para MSI (integraccedilatildeo em meacutedia escala) LSI (integraccedilatildeo em grande escala) e

VLSI (integraccedilatildeo em muito grande escala) Esta classificaccedilatildeo eacute baseada na quantidade de

componentes que o integrado conteacutem A programaccedilatildeo dos computadores desta geraccedilatildeo foi

facilitada pelo aparecimento de linguagens orientadas para o problema especiacutefico As linguagenssatildeo de natureza universal e assemelham-se cada vez mais a linguagem do homem As

operaccedilotildees de caacutelculos eram realizadas em bilioneacutesimos de segundos Realizando 1280000

adiccedilotildeessegundos

Com a terceira geraccedilatildeo dos computadores surgiram tambeacutem os teclados para digitaccedilatildeo de

comandos Monitores tambeacutem permitiam a visualizaccedilatildeo de sistemas operacionais muito

primitivos ainda completamente distantes dos sistemas graacuteficos que conhecemos e utilizamos

atualmente

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 965

9

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Apesar das facilidades trazidas pelos semicondutores os computadores dessa geraccedilatildeo

natildeo foram reduzidos sendo que um dos modelos de mais sucesso (o IBM 360 que vendeu mais

de 30 mil unidades) chegava a pesar mais do que os antecessores Nessa eacutepoca (final da deacutecada

de 1970 e iniacutecio da deacutecada de 1980) os computadores passaram a ser mais acessiacuteveis

Outro grande avanccedilo da terceira geraccedilatildeo foi a adiccedilatildeo da capacidade de upgrade nas

maacutequinas As empresas poderiam comprar computadores com determinadas configuraccedilotildees e

aumentar as suas capacidades de acordo com a necessidade pagando relativamente pouco por

essas facilidades IBM 360

QUARTA GERACcedilAtildeO DOS COMPUTADORES - (1971 - 1980)

A quarta geraccedilatildeo teve iniacutecio em 1971 quando a Intel lanccedilou o primeiro microprocessador

o Intel 4004 muito mais potente que os circuitos SSI e MSI de ateacute entatildeo e soacute terminou em 1981

com o lanccedilamento dos circuitos ULSI (Circuitos de Escala Ultra Grande) Tem como marco inicial

com os computadores pessoais surgimento do microprocessador a reduccedilatildeo no tamanho dos

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1065

10

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

computadores foi muito grande Surgem muitas linguagens de alto niacutevel e nasce agrave teleinformaacutetica

transmissatildeo de dados entre computadores atraveacutes de rede

Continuou-se o desenvolvimento do Circuito Integrado e a busca de se colocar cada vez

mais um maior nuacutemero de componentes em um chip

A Intel comeccedilou suas pesquisas nessa aacuterea em 1969 Os resultados foram vistos quando

em novembro de 1971 buscando atender ao pedido de uma empresa japonesa que precisava de

um circuito integrado especial a Intel elaborou o 4004 criado por Federico Faggin Ted Hoff

e Stanley Mazor primeiro microprocessador comercial

Internet

De 1969 a 1972 foi criada a Arpanet que deu iniacutecio a Internet (teleinformaacutetica) que conhecemos

hoje A rede entrou no ar em dezembro de 1969 no EUA Eles eram interligados atraveacutes de links

de 50 k criados usando linhas telefocircnicas dedicadas adaptadas para o uso de transmissatildeo de

dados

Em 1971 ocorre a transmissatildeo do primeiro e-mail realizada pela Universidade da Califoacuternia para

um computador na Stanford Research Institute com o texto ldquoLOGINrdquo mas chegou apenas LO

A Ethernet surgiu entre 1972 e 1973 dentro do PARC (o laboratoacuterio de desenvolvimento da Xerox

nos Estados Unidos) onde foi feito o primeiro teste de transmissatildeo de dados usando esse

padratildeo

Em 1974 surgiu o TCPIP que acabou se tornando o protocolo definitivo para uso

na ARPANET e mais tarde na Internet

QUINTA GERACcedilAtildeO DOS COMPUTADORES ndash (1980Atualmente)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1165

11

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Desde o iniacutecio da era dos microcomputadores o avanccedilo tem sido constante O computador

que se fabrica hoje dentro de alguns meses jaacute estaacute obsoleto

Atualmente o que vem surgindo satildeo inuacutemeras renovaccedilotildees com o objetivo de evoluir os sistemas

rdquoEmbora os paradigmas possam mudar as pesquisas normalmente evoluem baseadas em

resultados do passado que se constituem em fundamentos de um desenvolvimento posteriorhelliprdquo

Para Fixar

Escreva um breve resumo sobre o processo evolutivo dos computadores

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________ ___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

__________________________________________________________________

SOFTWARES

O QUE Eacute Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por

um computador com o objetivo de executar tarefas especiacuteficas Em um computador o software eacute

classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer instruccedilotildees para o hardware

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1265

12

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Diferentemente do que muitas pessoas imaginam o computador natildeo faz nada sozinho Ele

apenas processa uma seacuterie de informaccedilotildees inseridas pelo usuaacuterio para entatildeo fornecer os

resultados As informaccedilotildees inseridas e os resultados que recebemos precisam estar num formato

que noacutes humanos conseguimos entender Para facilitar essa comunicaccedilatildeo entre homem e

computador foram criados os softwares ou programas de computador Na realidade tudo que

fazemos com um computador eacute pela execuccedilatildeo desses programas

Um sistema operacional eacute um programa que atua como intermediaacuterio entre o usuaacuterio e o

hardware de um computador O propoacutesito de um sistema operacional eacute propiciar um ambiente no

qual o usuaacuterio possa executar outros programas de forma conveniente por esconder detalhes

internos de funcionamento e eficiecircncia por procurar gerenciar de forma justa os recursos do

sistema

Vimos que o sistema operacional interage diretamente com o hardware e com isso eacuteinfluenciado diretamente pela evoluccedilatildeo do mesmo Portanto a evoluccedilatildeo dos sistemas

operacionais estaacute em grande parte relacionada ao desenvolvimento de equipamentos cada vez

mais velozes compactos e de custos baixos e agrave necessidade de aproveitamento e controle

destes recursos

Assim ao falar sobre o histoacuterico dos sistemas operacionais estaremos recordando um

pouco a evoluccedilatildeo do hardware Devemos lembrar que as datas das fases da evoluccedilatildeo satildeo

aproximadasHISTOacuteRIA

Desde os tempos do computador programado por chaves e cabos ateacute o surgimento do

teclado e impressora de caracteres procurou-se ao longo do processo evolutivo do computador

tornar a sua utilizaccedilatildeo mais amigaacutevel precisa raacutepida e eficaz

Primeira geraccedilatildeo (1945-1955)

Vaacutelvulas e Paineacuteis de Programaccedilatildeo - No iniacutecio da Segunda Guerra Mundial surgiram os primeiros

computadores digitais formados por milhares de vaacutelvulas que ocupavam aacutereas enormes sendo

de funcionamento lento e duvidoso O ENIAC foi o primeiro computador digital de propoacutesito geral

Criado para a realizaccedilatildeo de caacutelculos baliacutesticos A programaccedilatildeo era feita em paineacuteis atraveacutes de

fios utilizando linguagem de maacutequina Natildeo existia o conceito de sistema operacional Outros

computadores foram construiacutedos nessa eacutepoca mas eram utilizados apenas em universidades e

oacutergatildeos militares

SEGUNDA GERACcedilAtildeO (1956-1965)

Transistores e Sistemas em Lote (batch)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1365

13

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

A criaccedilatildeo do transistor e das memoacuterias magneacuteticas contribuiu para o enorme avanccedilo dos

computadores da eacutepoca O transistor permitiu o aumento da velocidade e da confiabilidade do

processamento as memoacuterias magneacuteticas permitiram o acesso mais raacutepido aos dados maior

capacidade de armazenamento e computadores menores

Surgiram os primeiros sistemas operacionais para tentar automatizar as tarefas manuais

ateacute entatildeo realizadas e as primeiras linguagens de programaccedilatildeo como Assembly e Fortran Os

programas deixaram de ser feitos diretamente no hardware o que facilitou enormemente o

processo de desenvolvimento de programas Surgiu o processamento em batch em que um lote

(batch) de programas e de dados era submetido ao computador por vez

Terceira geraccedilatildeo (1966-1980)

Circuitos Integrados e Multiprogramaccedilatildeo

Por meio dos circuitos integrados e posteriormente dos microprocessadores foi possiacutevelviabilizar e difundir o uso de sistemas computacionais por empresas devido agrave diminuiccedilatildeo de seus

custos de aquisiccedilatildeo Houve um aumento no poder de processamento e diminuiccedilatildeo no tamanho

dos equipamentos

A evoluccedilatildeo dos processadores de entradasaiacuteda permitiu que enquanto um programa

esperasse por uma operaccedilatildeo de leituragravaccedilatildeo o processador executasse um outro programa

Para tal a memoacuteria foi dividida em particcedilotildees em que um programa esperava sua vez para ser

processado A essa teacutecnica de compartilhamento da memoacuteria principal e processador deu-se onome de multiprogramaccedilatildeo

QUARTA GERACcedilAtildeO (1981-1990)

Computadores Pessoais

Os mini e superminicomputadores se firmaram no mercado e os microcomputadores

ganharam um grande impulso Surgem as estaccedilotildees de trabalho (workstations) que apesar de

monousuaacuterias permitem que se executem diversas tarefas concorrentemente criando o conceito

de multitarefa

No final dos anos 80 os computadores tiveram um grande avanccedilo decorrente de aplicaccedilotildees que

exigiam um enorme volume de caacutelculos Para acelerar o processamento foram adicionados

outros processadores exigindo dos sistemas operacionais novos mecanismos de controle e

sincronismo Com o multiprocessamento foi possiacutevel a execuccedilatildeo de mais de um programa

simultaneamente ou ateacute de um mesmo programa por mais de um processador Foram

introduzidos processadores vetoriais e teacutecnicas de paralelismo de processamento fazendo com

que os computadores se tornassem ainda mais poderosos

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1465

14

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O uso das redes distribuiacutedas se difundiu por todo o mundo permitindo o acesso a outros

sistemas de computaccedilatildeo independentemente de cidade paiacutes e ateacute mesmo fabricante Os

softwares de rede passaram a estar intimamente relacionados com o sistema operacional de cada

maacutequina e surgem os sistemas operacionais de rede

QUINTA GERACcedilAtildeO (1991ATUALMENTE)

Houve grandes avanccedilos em termos de hardware software e telecomunicaccedilotildees como

consequecircncia da evoluccedilatildeo das aplicaccedilotildees que necessitavam cada vez mais de capacidade de

processamento e armazenamento de dados Sistemas especialistas sistemas multimiacutedia bancos

de dados distribuiacutedos inteligecircncia artificial e redes neurais satildeo apenas alguns exemplos da

necessidade cada vez maior de informaccedilatildeo e de capacidade de processamento O conceito de

processamento distribuiacutedo eacute explorado nos sistemas operacionais de forma que suas funccedilotildees

estejam espalhadas por vaacuterios processadores atraveacutes de redes de computadores A deacutecada de 90 foi definitiva para a consolidaccedilatildeo dos sistemas operacionais baseados em

interfaces graacuteficas

Atualmente temos as plataformas multicore (vaacuterios nuacutecleos) disponiacuteveis em computadores

pessoais e ateacute notebooks possibilitando cada vez mais a paralelizaccedilatildeo de aplicaccedilotildees e elevando

em muito o tempo de execuccedilatildeo dos programas Os fanaacuteticos pelos jogos de computador que o

digam

Os sistemas operacionais - satildeo parte fundamental dos computadores satildeo responsaacuteveis pororganizar os processos (programas) que estatildeo sendo executados pelo processador criando uma

fila de processos que garante que todos receberatildeo sua parcela de processamento

Para Fixar

Escreva um breve resumo sobre o processo evolutivo dos Softwares

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________ __________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1565

15

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

PRINCIacutePAIS SISTEMAS OPERACIONAIS

Principais SO que deram iniacutecio a era Windows MCs Linux e Unix

1987 ndash Andrew Tanenbaum um professor de computaccedilatildeo holandecircs desenvolve um sistema

operacional didaacutetico simplificado mas respeitando a API do UNIX que foi batizado como Minix

1987 ndash IBM e Microsoft apresentam a primeira versatildeo do OS2 um sistema multitarefa destinado

a substituir o MS-DOS e o Windows Mais tarde as duas empresas rompem a parceria a IBM

continua no OS2 e a Microsoft investe no ambiente Windows

1991 ndash Linus Torvalds um estudante de graduaccedilatildeo Finlandecircs inicia o desenvolvimento do Linux

lanccedilando na rede Usenet o nuacutecleo 001 logo abraccedilado por centenas de programadores ao redor

do mundo

1993 ndash a Microsoft lanccedila o Windows NT o primeiro sistema 32 bits da empresa

Capiacutetulo 2 ndash Banco de Dados

Banco de dados eacute um arquivo especial que armazena dados arrumados sob forma de

tabelas ou matrizes (em linhas e colunas) Quando um conjunto de informaccedilotildees possui muitasvariaacuteveis interligadas entre si eacute aconselhaacutevel que sejam armazenadas e trabalhadas em um

banco de dados Os bancos de dados fornecem uma seacuterie de funcionalidades que natildeo satildeo

encontradas em arquivos comuns ldquoBancos de dados satildeo coleccedilotildees de informaccedilotildees que se

relacionam de forma que crie um sentidordquo Satildeo de vital importacircncia para empresas e haacute duas

deacutecadas se tornaram a principal peccedila dos sistemas de informaccedilatildeo ldquoFonte Wikipeacutediardquo

Entatildeo um banco de dados eacute uma entidade na qual eacute possiacutevel armazenar dados de maneira

estruturada e com a menor redundacircncia possiacutevel Estes dados devem poder ser utilizadas porprogramas por usuaacuterios diferentes Assim a noccedilatildeo baacutesica de dados eacute acoplada geralmente a

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1665

16

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

uma rede a fim de poder pocircr conjuntamente estas informaccedilotildees daiacute o nome banco Fala-se

geralmente de sistema de informaccedilatildeo para designar toda a estrutura que reuacutene os meios

organizados para poder compartilhar dados

DADOS amp INFORMACcedilOtildeES

Muitos consideram dados e informaccedilotildees como palavras sinocircnimas mas na verdade natildeo satildeo

Para entender o que eacute um banco de dados eacute muito importante saber a diferenccedila entre essas duas

palavras

Dados satildeo fatos brutos em sua forma primaacuteria E muitas vezes os dados podem natildeo fazer

sentido sozinhos

Informaccedilotildees consistem no agrupamento de dados de forma organizada para fazer sentido

gerar conhecimento

Por exemplo o nuacutemero 2001 isoladamente faz algum sentido Natildeo Isso eacute um dado E se eu

dissesse ldquoAno do atentado terrorista agraves torres gecircmeas 2001Prime Agora faz sentido Isso eacute

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1765

17

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

uma informaccedilatildeo Um banco de dados eacute uma estrutura de dados organizada que permite a

extraccedilatildeo de informaccedilotildees

Metadados ndash Eacute todo dado relativo a outro dado eacute chamado de metadados No exemplo anterior

do ano 2001 o dado ldquoAno do atentado terrorista agraves torres gecircmeasrdquo eacute um metadado pois ele eacute um

dado sobre o dado ldquo2001rdquo Outro exemplo mais comum em banco de dados o campo telefone da

tabela cliente tem entre outros os seguinte metadados nome (telefone) tipo (texto) tamanho (30

caracteres) obrigatoriedade (natildeo) etc

Um banco de dados eacute formado por dado e metadados Sem os metadados natildeo seria

possiacutevel organizar e extrair informaccedilotildees de um banco de dados

Para Fixar

Dados - Em informaacutetica designa-se por dados os elementos de partida que servem de base

para o tratamento e sobre os quais o computador efetua as operaccedilotildees necessaacuterias agrave tarefa emquestatildeo

Os dados satildeo uma representaccedilatildeo dos fatos conceitos ou instruccedilotildees de uma maneira

normalizada que se adapte agrave comunicaccedilatildeo interpretaccedilatildeo e processamento pelo ser humano ou

atraveacutes de maacutequinas automaacuteticas

Os dados satildeo representados por siacutembolos como por exemplo as letras do alfabeto a b c

etc mas natildeo satildeo em si a informaccedilatildeo desejada

ExemploO I O C O M B - satildeo dados mas natildeo eacute informaccedilatildeo perceptiacutevel ao homem

A informaccedilatildeo natildeo eacute mais do que dados organizados e ordenados de forma uacutetil Isto eacute informaccedilatildeo

eacute o conhecimento produzido como resultado do processamento de dados

Se processarmos os dados que tiacutenhamos anteriormente entatildeo obtemos a informaccedilatildeo

O I O C O M B - Dados

- Processamento

C O M B O I O ndash Informaccedilatildeo

Para fixar

Escreva o significado de

Dados___________________________________________________________________

_________________________________________________________________________

Informaccedilatildeo_______________________________________________________________

_________________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1865

18

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Metadados_______________________________________________________________

_________________________________________________________________________

Banco de

dados___________________________________________________________________

_________________________________________________________________________

A histoacuteria dos bancos de dados

Hoje os bancos de dados satildeo essenciais para muitas empresas e estatildeo no coraccedilatildeo de

muitos sistemas computacionais Ter acesso raacutepido agraves informaccedilotildees eacute muito importante para a

correta tomada de decisotildees em um negoacutecio Se vocecirc pretende trabalhar com desenvolvimento de

softwares com certeza precisaraacute trabalhar com bancos de dados em algum momento Conhecer

a histoacuteria dos bancos de dados e como eles evoluiacuteram eacute muito importante para entender como os

bancos de dados mais comuns satildeo organizados Entatildeo como aconteceu a evoluccedilatildeo dos bancos

de dados

Antigamente as empresas armazenavam dados em fichas de papel que eram organizadas

em arquivos fiacutesicos atraveacutes de pastas Extrair informaccedilotildees e manter esses arquivos organizados

era uma tarefa muito custosa Aleacutem disso o acesso agrave informaccedilatildeo dependia da localizaccedilatildeo

geograacutefica dos arquivos Enfim esses arquivos fiacutesicos evoluiacuteram para arquivos digitais No iniacutecio

cada entidade (clientes funcionaacuterios produtos etc) era um arquivo de dados que eram

acompanhados de um ldquosoftware simplesrdquo para manipular os dados do arquivo esses softwares

permitiam realizar operaccedilotildees de cadastro alteraccedilatildeo exclusatildeo e consulta nos arquivos digitais De

fato melhorou bastante principalmente a tarefa de consulta de informaccedilotildees poreacutem os arquivos

digitais eram ainda uma versatildeo melhorada dos arquivos fiacutesicos

Mas as entidades precisavam relacionar-se por exemplo um produto eacute fornecido por

um fornecedor e com os arquivos digitais relacionaacute-las natildeo era uma tarefa muito trivial os

ldquosoftwares simplesrdquo para manipular os arquivos digitais comeccedilaram a ficar ldquocomplexosrdquo para

permitir os relacionamentos entre entidades Entatildeo na deacutecada de 60 a empresa IBM investiu

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1965

19

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

fortemente em pesquisas para solucionar estes problemas dos bancos de dados digitais

primitivos Vaacuterios modelos de bancos de dados surgiram nesta eacutepoca dentre eles os modelos

hieraacuterquicos e rede

Em junho de 1970 o pesquisador Edgar Frank ldquoTedrdquo Codd da IBM mudou a histoacuteria dos

bancos de dados apresentando o modelo relacional no artigo intitulado ldquoA Relational Model of

Data for Large Shared Data Banksrdquo (Um modelo relacional de dados para grandes bancos de

dados compartilhados) onde o autor apresentou uma forma de usuaacuterios sem conhecimento

teacutecnico armazenarem e extraiacuterem grandes quantidades de informaccedilotildees de um banco de dados

Esse artigo foi o grande impulso para a evoluccedilatildeo dos bancos de dados a partir do artigo de ldquoTedrdquo

Codd que os cientistas aprofundaram a ideia de criar o modelo de banco de dados relacional

BANCO DE DADOS RELACIONAL

Apesar de ter sido o marco dos bancos de dados relacionais o artigo de Codd natildeo foimuito explorado no iniacutecio Soacute no final da deacutecada de 70 que foi desenvolvido um sistema baseado

nas ideias do cientista o ldquoSistema Rrdquo Junto com esse sistema foi criado a linguagem de consulta

estruturada (SQL ndash Structured Query Language) que se tornou a linguagem padratildeo para bancos

de dados relacionais Embora tenha contribuiacutedo para a evoluccedilatildeo dos bancos de dados

relacionais o ldquoSystem Rrdquo natildeo foi muito bem sucedido comercialmente mas os sistemas de banco

de dados seguintes foram baseados nele

Nos anos 80 surgiram outros bancos de dados a Oracle apresentou o Oracle 2 e a IBMo SQLDS (que se tornou DB2) ambos sistemas comerciais de bancos de dados Na sequencia

vieram SQL Server MySQL DBase III Paradox etchellip

BANCOS DE DADOS HOJE

Atualmente existem vaacuterios modelos de bancos de dados tais como orientado a objetos

orientado a documentos etc Mas o mais comum ainda eacute o banco de dados relacional A decisatildeo

entre qual modelo de banco de dados utilizarem baseia-se no tipo de dados que vocecirc pretende

armazenar Por exemplo se vocecirc for armazenar uma grande quantidade de dados em um modelo

pequeno (imagine um banco de dados para o twitter) eacute mais indicado utilizar um banco de dados

orientado a documentos a um banco de dados relacional Muitas questotildees envolvem essa

decisatildeo mas natildeo eacute uma questatildeo de superioridade entre uma ou outra tecnologia todas tecircm proacutes

e contras e satildeo mais indicadas ou natildeo para cada problema

Para fixar

Faccedila um breve resumo sobre o surgimos dos bancos de dados

______________________________________________________________________________

______________________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2065

20

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

Dados amp Informaccedilatildeo

A informaccedilatildeo eacute encarada atualmente como um dos recursos mais importantes de uma

organizaccedilatildeo contribuindo decisivamente para a sua maior ou menor competitividade De fato

com o aumento da concorrecircncia tornou-se vital melhorar as capacidades de decisatildeo a todos osniacuteveis

Hoje mais que nunca a tomada de decisatildeo nas organizaccedilotildees eacute um processo complexo

dada a qualidade de informaccedilatildeo em jogo a sua complexidade e a frequecircncia com que se altera

No entanto para que possa ser utilizada com um apoio eficaz agrave tomada de decisatildeo a informaccedilatildeo

soacute tecircm valor se verificarem simultaneamente algumas condiccedilotildees

ATUALIDADE ndash O valor da informaccedilatildeo dependeraacute em grande parte da sua atualidade

Dado o dinamismo verificado em todos os setores da sociedade em geral e do ambiente

empresarial em particular o periacuteodo de validade da informaccedilatildeo eacute cada vez mais curto Torna-se

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2165

21

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

necessaacuterio dispor de fontes de informaccedilatildeo que acompanhem continuamente essas modificaccedilotildees

Soacute com base em informaccedilatildeo atualizada se podem tomar decisotildees acertadas

CORRECcedilAtildeO ndash Natildeo basta que a informaccedilatildeo seja atual eacute tambeacutem necessaacuterio que na

medida do possiacutevel seja rigorosa Soacute com informaccedilatildeo correta se pode decidir com confianccedila

RELEVAcircNCIA ndash Dado o grande de volume de informaccedilatildeo envolvida o processo de tomada

de decisatildeo ao contraacuterio de ser facilitado pode ser dificultado pelo excesso de informaccedilatildeo A

informaccedilatildeo deve ser devidamente filtrada de tal forma que apenas aquela com relevacircncia para

cada situaccedilatildeo seja considerada

DISPONIBILIDADE ndash Ainda que a informaccedilatildeo verifique os trecircs requisitos anteriores a sua

utilidades poderaacute ser posta em causa se natildeo puder ser disponibilizada de forma imediata no

momento em que eacute solicitada As decisotildees muito ponderadas com o longo periacuteodo de gestaccedilatildeo

satildeo cada vez mais situaccedilotildees do passado Hoje dadas as caracteriacutesticas do meio envolvente oprocesso de tomada de decisatildeo tem que ser quase instantacircneo Para isso a informaccedilatildeo tem que

ser disponibilizada rapidamente caso contraacuterio deixa de ser uacutetil

LEGIBILIDADE - Esta condiccedilatildeo apesar de apresentada em uacuteltimo lugar natildeo eacute por isso

menos importante A informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada

De fato de nada vale que a informaccedilatildeo seja atual precisa relevante e disponibilizada em

tempo oportuno se natildeo puder ser entendida A forma como eacute disponibilizada tem tambeacutem grande

importacircncia informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada A forma como eacutedisponibilizada tem tambeacutem grande importacircncia

Quanto aos requisitos de atualidade e correccedilatildeo da informaccedilatildeo para que esta possa ser

correta e atual os dados de onde eacute derivada tecircm forccedilosamente que ser precisos e atualizados

Quanto aos requisitos de relevacircncia disponibilidade e legibilidade da informaccedilatildeo estes tecircm mais

a ver com os meios utilizados para o processamento dos dados

Como eacute que a informaccedilatildeo eacute organizada

A organizaccedilatildeo da informaccedilatildeo eacute efetuada de acordo com criteacuterios distintos como

Hierarquia dos seus componentes

O tipo de assunto a que se refere

Forma de armazenamento

Quanto agrave HIERARQUIA DOS COMPONENTES DA INFORMACcedilAtildeO esta eacute organizada em

Caracteres Campos Registros Ficheiros Caracteres - podem ser numeacutericos alfabeacuteticos ou

sinais de pontuaccedilatildeo Campos - satildeo conjuntos de caracteres que identificam um componente de

um registo Registos - satildeo agrupamentos de campos descritivos de uma realidade Ficheiros - satildeo

conjuntos de registos cuja informaccedilatildeo eacute estruturalmente analoacutegica

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2265

22

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Quanto AO TIPO DE ASSUNTO a que se refere agrave informaccedilatildeo

Esta pode ser como que etiquetada de modo a tornar faacutecil a sua procura e a evitar perdas

de tempo

Quando a informaccedilatildeo estaacute armazenada em ficheiros estes indicam o seu tipo atraveacutes de

uma extensatildeo ao nome do ficheiro

Algumas das extensotildees mais comuns satildeo

- COM ficheiro de comandos - BACK backup ou coacutepias de seguranccedila- EXE executaacuteveis - SYS ficheiros de sistema

- BAT processamento batch - XLS folha de caacutelculo provenientes do Excel

- TXT texto no formato ASCII - PPT apresentaccedilotildees provenientes do PowerPoint

- PAS programas em Linguagem Pascal - MBD base de dados provenientes do Access

- C programas em Linguagem C - DOC documentos provenientes de um processador de

texto

Quanto Agrave FORMA DE ARMAZENAMENTO da informaccedilatildeoRelativamente ao armazenamento por exemplo no disco riacutegido do computador a

informaccedilatildeo eacute organizada em diretorias cujo nome revela o tipo de ficheiros que aiacute se encontram

podendo cada diretorias conter diversas subdiretorias

Organizaccedilatildeo dos dados num Computador

Os dados que fornecemos a um computador para processar podem ser de trecircs tipos

quantitativos classificativos referenciais

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2365

23

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Dados quantitativos - satildeo os que exprimem quantidades e por isso normalmente servem

de base para caacutelculos aritmeacuteticos Exemplo a ficha escolar as notas do periacuteodo as faltas o total

das faltas

bull Dados classificativos - satildeo os que descrevem ou especificam os elementos envolvidos e

quantificados Normalmente servem de complemento aos dados quantitativos identificando

pessoas objetos situaccedilotildees etc Natildeo servem portanto para elementos de caacutelculo Exemplo a

ficha escolar o nome do aluno o nome da disciplina o nome do professor

bull Dados referenciais - satildeo dados que permitem controlar e referenciar os elementos

tratados Exemplo a ficha escolar o ano letivo o nuacutemero do aluno a turma

Para fixar

Escreva de forma resumida como podemos organizar os dados

_________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

Tipos de Operaccedilotildees realizadas sobre os dados

O tipo de operaccedilotildees efetuadas depende dos objetivos do processamento e igualmente dostipos de dados nele envolvidos pois o computador pode processar dados numeacutericos ou natildeo

numeacutericos Assim temos como operaccedilotildees possiacuteveis num processamento

bull Operaccedilotildees aritmeacuteticas - satildeo efetuadas apenas sobre dados numeacutericos e satildeo

basicamente constituiacutedas por somas subtraccedilotildees multiplicaccedilotildees divisotildees e outras similares

bull Operaccedilotildees loacutegicas - satildeo efetuadas sobre dados numeacutericos ou natildeo numeacutericos Estas

operaccedilotildees satildeo tambeacutem por vezes designadas por operaccedilotildees de comparaccedilatildeo

bull Operaccedilotildees de movimentaccedilatildeo interna - satildeo efetuadas sobre qualquer tipo de dados e

consistem na coacutepia e mudanccedila de localizaccedilatildeo interna dos dados na memoacuteria do computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2465

24

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Operaccedilatildeo de InputOutput - satildeo as operaccedilotildees que envolvem os oacutergatildeos de entrada e

saiacuteda permitindo a comunicaccedilatildeo entre o operador e a maacutequina

Funccedilotildees do processamento de dados

Considera-se como processamento de dados o conjunto de todas as operaccedilotildees efetuadas desde

a entrada dos dados ateacute agrave saiacuteda da informaccedilatildeo Todas estas operaccedilotildees de vaacuterios tipos satildeo

normalmente associadas a seis funccedilotildees do processamento de dados input ordenaccedilatildeo

processamento armazenamento output e controle

bull Input - fase de seleccedilatildeo e aquisiccedilatildeo dos dados pelo computador

bull Ordenaccedilatildeo - esta eacute uma funccedilatildeo auxiliar O seu objetivo eacute dispor os dados de uma forma

organizada (ordenada) de modo a facilitar o seu tratamento Se os dados se mantiverem

ordenados segundo um determinado criteacuterio preacute-definido a sua pesquisa eacute mais faacutecil o que faz

aumentar a velocidade do processamento

bull Processamento - considera-se processamento ao conjunto de todas as operaccedilotildees

efetuadas internamente pelo computador na manipulaccedilatildeo dos dados

bull Armazenamento - esta eacute uma funccedilatildeo muito importante que permite posteriormente

analisar as etapas e os resultados do processamento

bull Output - eacute a obtenccedilatildeo de resultados sob a forma de informaccedilatildeo significativa para as

pessoas a quem se destina

bull Controle - a sua finalidade eacute detectar corrigir e eliminar possiacuteveis erros ou afastamentosem relaccedilatildeo aos objetivos inicialmente traccedilados

Utilidade de um banco de dados

Um banco de dados permite pocircr dados agrave disposiccedilatildeo de usuaacuterios para uma consulta uma

introduccedilatildeo ou uma atualizaccedilatildeo assegurando-se dos direitos atribuiacutedos a estes uacuteltimos Isso eacute

ainda mais uacutetil quando os dados informaacuteticos satildeo cada vez mais numerosos

Um banco de dados pode ser local quer dizer utilizaacutevel em uma maacutequina por um usuaacuterio

ou repartida quer dizer que as informaccedilotildees satildeo armazenadas em maacutequinas distantes eacessiacuteveis por rede A vantagem essencial da utilizaccedilatildeo dos bancos de dados eacute a possibilidade

de poder ser acessada por vaacuterios usuaacuterios simultaneamente

A gestatildeo dos bancos de dados

A fim de poder controlar os dados bem como os usuaacuterios a necessidade de um sistema de

gestatildeo fez-se sentir rapidamente A gestatildeo do banco de dados faz-se graccedilas a um sistema

chamado SGBD (sistema de gestatildeo de bancos de dados) ou em inglecircs DBMS (Database

managment system) O SGBD eacute um conjunto de serviccedilos (aplicaccedilotildees software) que permitem

gerenciar os bancos de dados quer dizer

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2565

25

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Permitir o acesso aos dados de maneira simples

Autorizar um acesso agraves informaccedilotildees a muacuteltiplos usuaacuterios

Manipular os dados presentes no banco de dados (inserccedilatildeo supressatildeo modificaccedilatildeo)

O SGBD pode decompor-se em trecircs subsistemas

O sistema de gestatildeo de arquivos permite o armazenamento das informaccedilotildees num suporte

fiacutesico

O SGBD interno gerencia a emissatildeo das informaccedilotildees

O SGBD externo representa a interface com o usuaacuterio

Bancos de dados satildeo conjuntos de dados com uma estrutura regular que organizam

informaccedilatildeo Um banco de dados normalmente agrupa informaccedilotildees utilizadas para um mesmo fim

O modelo de dados mais adotado hoje em dia eacute o modelo relacional onde as estruturas

tecircm a forma de tabelas compostas por linhas e colunas

Resumindo um banco de dados eacute uma coleccedilatildeo de dados relacionados Entende-se por

dado toda a informaccedilatildeo que pode ser armazenada e que apresenta algum significado impliacutecito

dentro do contexto ao qual ele se aplica Por exemplo num sistema bancaacuterio uma pessoa eacuteidentificada pelo seu cpf(cliente) Em um sistema escolar a pessoa eacute identificada pelo seu nuacutemero

de matriacutecula(aluno) Aleacutem disso os dados que seratildeo armazenados em cada situaccedilatildeo podem

diferir consideravelmente

Atividades

1) Onde utilizar um banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2665

26

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2) Como funciona um sistema gerenciador de banco de dados

3) Como funciona o modelo relacional

Modelo Relacional

O modelo relacional eacute uma teoria matemaacutetica desenvolvida por Edgar Frank Codd para

descrever como as bases de dados devem funcionar Embora esta teoria seja a base para o

software de bases de dados relacionais muito poucos sistemas de gestatildeo de bases de dados

seguem o modelo de forma restrita e todos tecircm funcionalidades que violam a teoria desta forma

variando a complexidade e o poder A discussatildeo se esses bancos de dados merecem ser

chamados de relacional ficou esgotada com tempo com a evoluccedilatildeo dos bancos existentes

De acordo com a arquitetura ANSI SPARC em trecircs niacuteveis os Bancos de dados

relacionais consistem de trecircs componentes

bull uma coleccedilatildeo de estruturas de dados formalmente chamadas de relaccedilotildees ou

informalmente tabelas compondo o niacutevel conceitual

bull uma coleccedilatildeo dos operadores a aacutelgebra e o caacutelculo relacionais que constituem a base da

linguagem SQL

bull uma coleccedilatildeo de restriccedilotildees da integridade definindo o conjunto consistente de estados de

base de dados e de alteraccedilotildees de estados As restriccedilotildees de integridade podem ser de quatro

tipos

bull domiacutenio (ou tipo de dados) bull atributo

bull restriccedilotildees de base de dados

De acordo com o Princiacutepio de Informaccedilatildeo toda informaccedilatildeo tem de ser representada como dados

qualquer tipo de atributo representa relaccedilotildees entre conjuntos de dados

Nos bancos de dados relacionais os relacionamentos entre as tabelas natildeo satildeo codificados

explicitamente na sua definiccedilatildeo Em vez disso se fazem implicitamente pela presenccedila de

atributos chave As bases de dados relacionais permitem aos utilizadores (incluindo

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2765

27

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

programadores) escreverem consultas (queries) reorganizando e utilizando os dados de forma

flexiacutevel e natildeo necessariamente antecipada pelos projetistas originais

Esta flexibilidade eacute especialmente importante em bases de dados que podem ser utilizadas

durante deacutecadas tornando as bases de dados relacionais muito populares no meio comercial

Um dos pontos fortes do modelo relacional de banco de dados eacute a possibilidade de

definiccedilatildeo de um conjunto de restriccedilotildees de integridade Estas definem os conjuntos de estados e

mudanccedilas de estado consistentes do banco de dados determinando os valores que podem e os

que natildeo podem ser armazenados

Aplicaccedilotildees de bancos de dados

Bancos de dados satildeo usados em muitas aplicaccedilotildees enquanto atravessando virtualmente a

gama inteira de software de computador Bancos de dados eacute o meacutetodo preferido de

armazenamento para aplicaccedilotildees multiusuaacuterias grandes onde a coordenaccedilatildeo entre muitosusuaacuterios eacute necessaacuteria Ateacute mesmo usuaacuterios individuais os acham convenientes entretanto e

muitos programas de correio eletrocircnico e os organizadores pessoais estatildeo baseados em

tecnologia de banco de dados standard

Aplicativo de Banco de Dados

Um aplicativo de banco de dados eacute um tipo de software exclusivo para gerenciar um banco

de dados Aplicativos de banco de dados abrangem uma vasta variedade de necessidades e

objetivos de pequenas ferramentas como uma agenda ateacute complexos sistemas empresariaispara desempenhar tarefas como a contabilidade

O termo Aplicativo de Banco de dados usualmente se refere a softwares que oferecem

uma interface para o banco de dados Exemplos de aplicativos de banco de dados satildeo Microsoft

Visual FoxPro Microsoft Access dBASE FileMaker (em certa medida) HyperCard MySQL

PostgreSQL Microsoft SQL Server e Oracle

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2865

28

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Capiacutetulo 3 - HARDWARE E SOFTWARE

O QUE Eacute O HARDWARE

No acircmbito da informaacutetica eacute dada a designaccedilatildeo de hardware a todos os componentes

fiacutesicos que fazem parte de um sistema informaacutetico incluiacutedo toda a parte fiacutesica de um computador

(nomeadamente os processadores motherbord disco riacutegido placas de som placas de viacutedeo

memoacuterias etc) e todos os perifeacutericos (tais como teclados mouse monitores impressoras

scanners modems entre outros)

Peccedilas de um computador

Se vocecirc usa um computador desktop jaacute deve saber que natildeo existe uma parte uacutenica

chamada computador Um computador eacute na verdade um sistema de muitas partes funcionando

em conjunto As partes fiacutesicas que vocecirc pode ver e tocar satildeo denominadas

coletivamente hardware (O software por outro lado se refere agraves instruccedilotildees ou programas que

dizem ao hardware o que fazer)

A ilustraccedilatildeo a seguir mostra os dispositivos de hardware mais comuns em um sistema de

computador desktop Seu sistema pode ter uma aparecircncia um pouco diferente mas

provavelmente possui a maioria destas peccedilas Um computador laptop possui peccedilas semelhantes

mas as combina em um uacutenico pacote do tamanho de um caderno

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2965

29

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Sistema de computador desktop

Unidade de sistema

A unidade de sistema (Gabinete) eacute o nuacutecleo de um sistema de computador Normalmente

eacute uma caixa retangular colocada sobre a mesa ou embaixo dela Dentro dessa caixa estatildeo os

componentes eletrocircnicos que processam as informaccedilotildees O mais importante desses

componentes eacute a CPU (unidade de processamento central) ou microprocessador que atua como

o ceacuterebro do computador Outro componente eacute a memoacuteria RAM que armazena

temporariamente informaccedilotildees utilizadas pela CPU enquanto o computador estaacute ligado As

informaccedilotildees gravadas na RAM satildeo apagadas quando o computador eacute desligado

Quase todas as outras partes do computador se conectam agrave unidade de sistema por meio

de cabos Os cabos satildeo conectados aportas (aberturas) especiacuteficas geralmente na parte traseira

da unidade de sistema O hardware que natildeo faz parte da unidade de sistema eacute

chamado dispositivo perifeacuterico ou simplesmente dispositivo

Unidade de sistema

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3065

30

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Armazenamento

O computador possui uma ou mais unidades de disco ou seja dispositivos que armazenam

informaccedilotildees em um disco de plaacutestico ou de metal O disco preserva as informaccedilotildees mesmo

quando o computador estaacute desligado

Unidade de disco riacutegido

A unidade de disco riacutegido do computador armazena informaccedilotildees em um disco riacutegido que eacute um

prato riacutegido ou pilha de pratos com uma superfiacutecie magneacutetica Como os discos riacutegidos podem

reter uma grande quantidade de informaccedilotildees normalmente eles funcionam como principal meio

de armazenamento do computador guardando praticamente todos os programas e arquivos Em

geral a unidade de disco riacutegido fica localizada dentro da unidade de sistema

Unidade de disco riacutegidoUnidades de CD e DVD

Hoje em dia quase todos os computadores vecircm equipados com uma unidade de CD ou DVD

geralmente localizada na frente da unidade de sistema As unidades de CD usam lasers para ler

(recuperar) dados de um CD Muitas delas tambeacutem podem gravar dados em CDs Se vocecirc tiver

uma unidade de disco gravaacutevel poderaacute armazenar coacutepias de seus arquivos em CDs vazios A

unidade de CD tambeacutem serve para tocar CDs de muacutesica no computador

CD

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3165

31

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

As unidades de DVD fazem o mesmo que as unidades de CD e tambeacutem lecircem DVDs Se vocecirc

tiver uma unidade de DVD poderaacute ver filmes no computador Muitas unidades de DVD podem

gravar dados em DVDs vazios

Dica

Se vocecirc tiver uma unidade de CD ou DVD gravaacutevel faccedila backup (copie) periodicamente de seus

arquivos importantes em CDs ou DVDs Dessa forma caso venha a ocorrer alguma falha no disco

riacutegido vocecirc natildeo perderaacute os dados

Unidade de disquete

As unidades de disquete armazenam informaccedilotildees em discos tambeacutem chamados discos

flexiacuteveis ou disquetes Comparado a CDs e DVDs os disquetes podem armazenar apenas uma

pequena quantidade de dados Eles tambeacutem recuperam informaccedilotildees de forma mais lenta e satildeo

mais vulneraacuteveis a danos Por esses motivos as unidades de disquete satildeo cada vez menosusadas embora ainda sejam incluiacutedas em alguns computadores

Disquete

Por que estes discos satildeo chamados de disquetes Apesar de a parte externa ser composta de

plaacutestico riacutegido isso eacute apenas a capa O interior do disco eacute feito de um material de vinil fino e

flexiacutevel

Mouse

Mouse eacute um pequeno dispositivo usado para apontar e selecionar itens na tela do computador

Embora existam mouses de vaacuterias formas o modelo mais comum se assemelha a um rato (como

diz o nome em inglecircs) Ele eacute pequeno e alongado sendo conectado agrave unidade de sistema por um

cabo comprido que faz lembrar uma cauda Alguns mouses mais novos satildeo sem fio

Mouse

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3265

32

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O mouse geralmente possui dois bototildees um botatildeo principal (normalmente o da esquerda) e um

botatildeo secundaacuterio Muitos mouses tambeacutem tecircm uma roda entre os dois bototildees que permite

percorrer as telas de informaccedilotildees

Ponteiros do mouse

Agrave medida que vocecirc move o mouse com a matildeo um ponteiro na tela se move na mesma direccedilatildeo

(A aparecircncia do ponteiro pode mudar dependendo da sua posiccedilatildeo na tela) Quando quiser

selecionar um item aponte para ele e clique no botatildeo principal ou seja pressione-o e solte-o

Apontar e clicar com o mouse eacute a principal maneira de interagir com o computador Para mais

informaccedilotildees consulte Usando o mouse

Teclado

A finalidade principal do teclado eacute digitar texto no computador Ele possui teclas para letras e

nuacutemeros exatamente como em uma maacutequina de escrever A diferenccedila estaacute nas teclas especiais

As teclas de funccedilatildeo localizadas na linha superior executam funccedilotildees diferentes dependendo

de onde satildeo usadas

O teclado numeacuterico localizado agrave direita na maioria dos teclados permite inserir nuacutemeros

rapidamente

As teclas de navegaccedilatildeo como as teclas de seta permitem mover sua posiccedilatildeo dentro de

documentos ou paacuteginas da Web

Teclado

Vocecirc tambeacutem pode usar o teclado para executar muitas das mesmas tarefas que executa com

um mouse Para mais informaccedilotildees consulte Usando o teclado

Monitor

O monitor exibe informaccedilotildees em forma visual usando texto e elementos graacuteficos A parte do

monitor que exibe as informaccedilotildees eacute chamada tela Como a tela de uma televisatildeo a tela de um

computador pode mostrar imagens paradas ou em movimento

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3365

33

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Existem dois tipos baacutesicos de monitores CRT (tubo de raios catoacutedicos) e LCD (viacutedeo de cristal

liacutequido) Ambos produzem imagens niacutetidas mas os monitores LCD levam vantagem por serem

mais finos e mais leves

Monitor LCD (agrave esquerda) monitor CRT (agrave direita)

Impressora

Uma impressora transfere dados de um computador para o papel Vocecirc natildeo precisa de

impressora para usar o computador mas se tiver uma poderaacute imprimir emails cartotildees convites

anuacutencios e outros materiais Muitas pessoas tambeacutem preferem imprimir suas fotos em casa

Os dois principais tipos de impressora satildeo a jato de tinta e a laser As impressoras a jato de tinta

satildeo as mais populares para uso domeacutestico Elas podem imprimir em preto e branco ou em cores

e produzem fotos de alta qualidade quando usadas com papel especial As impressoras a laser

satildeo mais raacutepidas e mais adequadas para uso intenso

Impressora a jato de tinta (agrave esquerda) impressora a laser (agrave direita)

Alto-falantes

Os alto-falantes satildeo usados para tocar som Eles podem vir embutidos na unidade de sistema ou

ser conectados com cabos Satildeo eles que permitem ouvir muacutesica e efeitos de som no computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3465

34

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Alto-falantes do computador

Modem

Para conectar o computador agrave Internet vocecirc precisa de um modem um dispositivo que envia e

recebe informaccedilotildees do computador por linha telefocircnica ou cabo de alta velocidade Agraves vezes os

modems vecircm embutidos na unidade de sistema mas os de alta velocidade normalmente satildeo

componentes separados

Modem a cabo

O QUE Eacute O SOFTWARE

O Software eacute uma aplicaccedilatildeo ou programa do computador escrita numa determinadalinguagem interpretaacutevel por uma determinada maacutequina (o processador de um computador ou

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3565

35

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

outro equipamento) e que permite executar determinadas tarefas para as quais o software foi

projetado Estes programas satildeo compostos por uma sequecircncia de instruccedilotildees (os comandos) e de

declaraccedilotildees de dados as quais satildeo armazenaacuteveis num meio digital

Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por um

computador com o objetivo de executar tarefas especiacuteficas Tambeacutem pode ser definido como

os programas que comandam o funcionamento de um computador

Em um computador o software eacute classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer

instruccedilotildees para o hardware O hardware eacute toda a parte fiacutesica que constitui o computador por

exemplo a CPU a memoacuteria e os dispositivos de entrada e saiacuteda O software eacute constituiacutedo por

todos os programas que existem para um referido sistema quer sejam produzidos pelo proacuteprio

utente ou pelo fabricante do computador

O termo inglecircs software foi usado pela primeira vez em 1958 em um artigo escrito pelo cientistaamericano John Wilder Tukey Foi tambeacutem ele o responsaacutevel por introduzir o termo bit para

designar diacutegito binaacuterio

Os softwares podem ser classificados como

SOFTWARE DE SISTEMA

Geralmente dividido em SISTEMAS OPERACIONAIS e PROGRAMAS UTILITAacuteRIOS Para

comeccedilar os Sist Operacionais satildeo de grande importacircncia pois eles nos datildeo a opccedilatildeo de dizer ao

computador o que ele deve fazer Dois exemplos bastante conhecidos do nosso puacuteblico satildeoo Mac o Windows e o Linux Os Programas utilitaacuterios geralmente satildeo softwares de menor porte

com funccedilotildees mais especificas tipo Verificaccedilatildeo de Disco Coacutepias de Seguranccedila entre outros

SOFTWARE APLICATIVO

Neste tipo de software se enquadram todos aqueles programas que satildeo utilizados na execuccedilatildeo

de tarefas especiacuteficas Posso citar vaacuterios exemplos mas os mais comuns satildeo os processadores

de texto como o Word que servem para trabalhar com os mais diversos tipos de textos emitir

etiquetas e fazer formulaacuterios as planilhas eletrocircnicas como o Excel satildeo poderosas ferramentas

de caacutelculos que facilitam tanto aquele trabalho aacuterduo de matemaacutetica fazer graacuteficos com real

representaccedilatildeo dos dados eacute uma coisa muito boa pra quem precisa e por uacuteltimo o que muitos

usam mas natildeo sabem o nome ao certo que satildeo os Browsers ou Navegadores softwares usados

para navegar na Web dentre eles os mais conhecidos atualmente satildeo Windows Internet

Explorer Firefox Google Chrome Opera e Safaacuteri

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3665

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3765

37

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

hoje eles satildeo bastante usados em situaccedilotildees de treinamentos de pessoas para enfrentar casos no

seu dia-a-dia

SOFTWARE DE JOGOS

Geralmente satildeo softwares relacionados a entretenimento para proporcionar lazer e diversatildeo

Dispotildeem de muitos recursos interativos e existem de todos os tipos desde estrateacutegias ateacute

simulaccedilotildees reais de muitas coisas como corridas (Need for Speed) ateacute mesmo de vida como o

Second Life

SOFTWARES ABERTOS

Satildeo aqueles que permitem que o usuaacuterio produza com liberdade e criatividade se classificam

nessa categoria aqueles softwares de apresentaccedilotildees bancos de dados e vaacuterios outros

Para fixar

Descreva uma definiccedilatildeo para os tipos de softwares

Software de Sistema_____________________________________________________________

Software Aplicativo ______________________________________________________________

Software de Linguagem __________________________________________________________

Software abertos _______________________________________________________________

Capiacutetulo 4 - Conceitos Baacutesicos de Banco de Dados

Segundo Korth um banco de dados ldquoeacute uma coleccedilatildeo de dados inter -relacionados

representando informaccedilotildees sobre um domiacutenio especiacuteficordquo ou seja sempre que for possiacutevel

agrupar informaccedilotildees que se relacionam e tratam de um mesmo assunto posso dizer que tenho

um banco de dados

Podemos exemplificar situaccedilotildees claacutessicas como uma lista telefocircnica um cataacutelogo de CDs ou um

sistema de controle de RH de uma empresa

Jaacute um sistema de gerenciamento de banco de dados (SGBD) eacute um software que possui

recursos capazes de manipular as informaccedilotildees do banco de dados e interagir com o usuaacuterio

Exemplos de SGBDs satildeo Oracle SQL Server DB2 PostgreSQL MySQL o proacuteprio Access ouParadox entre outros

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3865

38

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Por uacuteltimo temos que conceituar um sistema de banco de dados como o conjunto de quatro

componentes baacutesicos dados hardware software e usuaacuterios Date conceituou que ldquosistema de

bancos de dados pode ser considerado como uma sala de arquivos eletrocircnicardquo A Figura 1 ilustra

os componentes de um sistema de banco de dados

Componentes de um sistema de banco de dados

Os objetivos de um sistema de banco de dados satildeo o de isolar o usuaacuterio dos detalhes

internos do banco de dados (promover a abstraccedilatildeo de dados) e promover a independecircncia dos

dados em relaccedilatildeo agraves aplicaccedilotildees ou seja tornar independente da aplicaccedilatildeo a estrateacutegia de

acesso e a forma de armazenamento

Abstraccedilatildeo de dados

O sistema de banco de dados deve garantir uma visatildeo totalmente abstrata do banco de

dados para o usuaacuterio ou seja para o usuaacuterio do banco de dados pouco importa qual unidade de

armazenamento estaacute sendo usada para guardar seus dados contanto que os mesmos estejam

disponiacuteveis no momento necessaacuterio

Esta abstraccedilatildeo se daacute em trecircs niacuteveis (Figura 2) Niacutevel de visatildeo do usuaacuterio as partes do banco de dados que o usuaacuterio tem acesso de

acordo com a necessidade individual de cada usuaacuterio ou grupo de usuaacuterios

Niacutevel conceitual define quais os dados que estatildeo armazenados e qual o relacionamento

entre eles

Niacutevel fiacutesico eacute o niacutevel mais baixo de abstraccedilatildeo em que define efetivamente de que maneira

os dados estatildeo armazenados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3965

39

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 2 Niacuteveis de abstraccedilatildeo

Projeto de banco de dados

Todo bom sistema de banco de dados deve apresentar um projeto que visa a organizaccedilatildeo das

informaccedilotildees e utilizaccedilatildeo de teacutecnicas para que o futuro sistema obtenha boa performance e

tambeacutem facilite infinitamente as manutenccedilotildees que venham a acontecer

O projeto de banco de dados se daacute em duas fases

Modelagem conceitual Projeto loacutegico

Estas duas etapas se referem a um sistema de banco de dados ainda natildeo implementado ou seja

que ainda natildeo exista um novo projeto Para os casos em que o banco de dados jaacute exista mas eacute

um sistema legado por exemplo ou um sistema muito antigo sem documentaccedilatildeo o processo de

projeto de banco de dados se daraacute atraveacutes da utilizaccedilatildeo de uma teacutecnica chamada de Engenharia

Reversa que seraacute visto em outra oportunidade

Modelo conceitual

Eacute a descriccedilatildeo do BD de maneira independente ao SGBD ou seja define quais os dados

que apareceratildeo no BD mas sem se importar com a implementaccedilatildeo que se daraacute ao BD Desta

forma haacute uma abstraccedilatildeo em niacutevel de SGBD

Uma das teacutecnicas mais utilizadas dentre os profissionais da aacuterea eacute a abordagem entidade-

relacionamento (ER) onde o modelo eacute representado graficamente atraveacutes do diagrama entidade-

relacionamento (DER) (Figura 3)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 7: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 765

7

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Esta Geraccedilatildeo foi originada pela revoluccedilatildeo dos Transistores os quais substituiacuteram as volumosas

vaacutelvulas Houve uma enorme diminuiccedilatildeo em cabos e fios tendo em vista que cada transistor

substituiacutea dezenas de vaacutelvulas Desta maneira os computadores tornaram-se consideravelmente

menores e devido a isso muito mais velozes O computador comeccedila a ser utilizado nas grandes

empresas Projetos foram implementados baseados na utilizaccedilatildeo de transistores houve grandes

avanccedilos no que se refere agraves unidades de memoacuteria principal com a substituiccedilatildeo do sistema de

tubos de raios catoacutedicos pelo de nuacutecleos magneacuteticos (usados ateacute hoje)

A memoacuteria teve um aumento em sua capacidade de armazenamento chegando a 32K

Principais computadores IBM 1401 IBM 7094 Honeywell 800 e IBM 7090

Tanto a vaacutelvula quanto o transistor realizavam um processamento de cada vez Com o

desenvolvimento das teacutecnicas de integraccedilatildeo surgiram os Circuitos Integrados onde numa

pequena caacutepsula continha vaacuterias dezenas centenas ou milhares de transistores ocupando umaaacuterea menor que uma unha dando o nome de microprocessador (processador miniatura) A

linguagem de programaccedilatildeo foi simplificada e jaacute se podia programar atraveacutes de mnemocircnicos

(comandos abreviados) Esta linguagem denomina-se ASSEMBLER As operaccedilotildees de caacutelculos

eram realizadas em milioneacutesimos de segundos Realizando 204000 adiccedilotildeessegundos Aleacutem do

surgimento dos nuacutecleos de ferrite fitas e tambores magneacuteticos passam a ser usados como

memoacuteria

Eacute possiacutevel dividir os computadores desta geraccedilatildeo em duas grandes categoriassupercomputadores e minicomputadores

IBM 7030 tambeacutem conhecido por Strech foi o primeiro supercomputador lanccedilado na

segunda geraccedilatildeo desenvolvido pela IBM Seu tamanho era bem reduzido comparado com

maacutequinas como o ENIAC podendo ocupar somente uma sala comum Ele era utilizado por

grandes companhias custando em torno de 13 milhotildees de doacutelares na eacutepoca Esta maacutequina

executava caacutelculos na casa dos microssegundos o que permitia ateacute um milhatildeo de operaccedilotildees por

segundo Desta maneira um novo patamar de velocidade foi atingido Comparado com os da

primeira geraccedilatildeo os supercomputadores como o IBM 7030 eram mais confiaacuteveis

PDP-8 foi um dos mini-computadores mais conhecidos da segunda geraccedilatildeo Basicamente

foi uma versatildeo mais baacutesica do supercomputador sendo mais atrativo do ponto de vista financeiro

(centenas de milhotildees de doacutelares) Eram menores do que os supercomputadores mas mesmo

assim ainda ocupavam um bom espaccedilo no cocircmodo

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 865

8

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

TERCEIRA GERACcedilAtildeO DOS COMPUTADORES - (1964 - 1971)

A 3ordf Geraccedilatildeo surgiu com a utilizaccedilatildeo dos Circuitos Integrados ndash SLT (Solid Logic Technolo-

gy) uma teacutecnica de micro circuitos Nesta geraccedilatildeo os computadores podiam realizar vaacuterios

processamentos simultacircneos As teacutecnicas de integraccedilatildeo evoluiacuteram de SSI (integraccedilatildeo em

pequena escala) para MSI (integraccedilatildeo em meacutedia escala) LSI (integraccedilatildeo em grande escala) e

VLSI (integraccedilatildeo em muito grande escala) Esta classificaccedilatildeo eacute baseada na quantidade de

componentes que o integrado conteacutem A programaccedilatildeo dos computadores desta geraccedilatildeo foi

facilitada pelo aparecimento de linguagens orientadas para o problema especiacutefico As linguagenssatildeo de natureza universal e assemelham-se cada vez mais a linguagem do homem As

operaccedilotildees de caacutelculos eram realizadas em bilioneacutesimos de segundos Realizando 1280000

adiccedilotildeessegundos

Com a terceira geraccedilatildeo dos computadores surgiram tambeacutem os teclados para digitaccedilatildeo de

comandos Monitores tambeacutem permitiam a visualizaccedilatildeo de sistemas operacionais muito

primitivos ainda completamente distantes dos sistemas graacuteficos que conhecemos e utilizamos

atualmente

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 965

9

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Apesar das facilidades trazidas pelos semicondutores os computadores dessa geraccedilatildeo

natildeo foram reduzidos sendo que um dos modelos de mais sucesso (o IBM 360 que vendeu mais

de 30 mil unidades) chegava a pesar mais do que os antecessores Nessa eacutepoca (final da deacutecada

de 1970 e iniacutecio da deacutecada de 1980) os computadores passaram a ser mais acessiacuteveis

Outro grande avanccedilo da terceira geraccedilatildeo foi a adiccedilatildeo da capacidade de upgrade nas

maacutequinas As empresas poderiam comprar computadores com determinadas configuraccedilotildees e

aumentar as suas capacidades de acordo com a necessidade pagando relativamente pouco por

essas facilidades IBM 360

QUARTA GERACcedilAtildeO DOS COMPUTADORES - (1971 - 1980)

A quarta geraccedilatildeo teve iniacutecio em 1971 quando a Intel lanccedilou o primeiro microprocessador

o Intel 4004 muito mais potente que os circuitos SSI e MSI de ateacute entatildeo e soacute terminou em 1981

com o lanccedilamento dos circuitos ULSI (Circuitos de Escala Ultra Grande) Tem como marco inicial

com os computadores pessoais surgimento do microprocessador a reduccedilatildeo no tamanho dos

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1065

10

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

computadores foi muito grande Surgem muitas linguagens de alto niacutevel e nasce agrave teleinformaacutetica

transmissatildeo de dados entre computadores atraveacutes de rede

Continuou-se o desenvolvimento do Circuito Integrado e a busca de se colocar cada vez

mais um maior nuacutemero de componentes em um chip

A Intel comeccedilou suas pesquisas nessa aacuterea em 1969 Os resultados foram vistos quando

em novembro de 1971 buscando atender ao pedido de uma empresa japonesa que precisava de

um circuito integrado especial a Intel elaborou o 4004 criado por Federico Faggin Ted Hoff

e Stanley Mazor primeiro microprocessador comercial

Internet

De 1969 a 1972 foi criada a Arpanet que deu iniacutecio a Internet (teleinformaacutetica) que conhecemos

hoje A rede entrou no ar em dezembro de 1969 no EUA Eles eram interligados atraveacutes de links

de 50 k criados usando linhas telefocircnicas dedicadas adaptadas para o uso de transmissatildeo de

dados

Em 1971 ocorre a transmissatildeo do primeiro e-mail realizada pela Universidade da Califoacuternia para

um computador na Stanford Research Institute com o texto ldquoLOGINrdquo mas chegou apenas LO

A Ethernet surgiu entre 1972 e 1973 dentro do PARC (o laboratoacuterio de desenvolvimento da Xerox

nos Estados Unidos) onde foi feito o primeiro teste de transmissatildeo de dados usando esse

padratildeo

Em 1974 surgiu o TCPIP que acabou se tornando o protocolo definitivo para uso

na ARPANET e mais tarde na Internet

QUINTA GERACcedilAtildeO DOS COMPUTADORES ndash (1980Atualmente)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1165

11

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Desde o iniacutecio da era dos microcomputadores o avanccedilo tem sido constante O computador

que se fabrica hoje dentro de alguns meses jaacute estaacute obsoleto

Atualmente o que vem surgindo satildeo inuacutemeras renovaccedilotildees com o objetivo de evoluir os sistemas

rdquoEmbora os paradigmas possam mudar as pesquisas normalmente evoluem baseadas em

resultados do passado que se constituem em fundamentos de um desenvolvimento posteriorhelliprdquo

Para Fixar

Escreva um breve resumo sobre o processo evolutivo dos computadores

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________ ___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

__________________________________________________________________

SOFTWARES

O QUE Eacute Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por

um computador com o objetivo de executar tarefas especiacuteficas Em um computador o software eacute

classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer instruccedilotildees para o hardware

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1265

12

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Diferentemente do que muitas pessoas imaginam o computador natildeo faz nada sozinho Ele

apenas processa uma seacuterie de informaccedilotildees inseridas pelo usuaacuterio para entatildeo fornecer os

resultados As informaccedilotildees inseridas e os resultados que recebemos precisam estar num formato

que noacutes humanos conseguimos entender Para facilitar essa comunicaccedilatildeo entre homem e

computador foram criados os softwares ou programas de computador Na realidade tudo que

fazemos com um computador eacute pela execuccedilatildeo desses programas

Um sistema operacional eacute um programa que atua como intermediaacuterio entre o usuaacuterio e o

hardware de um computador O propoacutesito de um sistema operacional eacute propiciar um ambiente no

qual o usuaacuterio possa executar outros programas de forma conveniente por esconder detalhes

internos de funcionamento e eficiecircncia por procurar gerenciar de forma justa os recursos do

sistema

Vimos que o sistema operacional interage diretamente com o hardware e com isso eacuteinfluenciado diretamente pela evoluccedilatildeo do mesmo Portanto a evoluccedilatildeo dos sistemas

operacionais estaacute em grande parte relacionada ao desenvolvimento de equipamentos cada vez

mais velozes compactos e de custos baixos e agrave necessidade de aproveitamento e controle

destes recursos

Assim ao falar sobre o histoacuterico dos sistemas operacionais estaremos recordando um

pouco a evoluccedilatildeo do hardware Devemos lembrar que as datas das fases da evoluccedilatildeo satildeo

aproximadasHISTOacuteRIA

Desde os tempos do computador programado por chaves e cabos ateacute o surgimento do

teclado e impressora de caracteres procurou-se ao longo do processo evolutivo do computador

tornar a sua utilizaccedilatildeo mais amigaacutevel precisa raacutepida e eficaz

Primeira geraccedilatildeo (1945-1955)

Vaacutelvulas e Paineacuteis de Programaccedilatildeo - No iniacutecio da Segunda Guerra Mundial surgiram os primeiros

computadores digitais formados por milhares de vaacutelvulas que ocupavam aacutereas enormes sendo

de funcionamento lento e duvidoso O ENIAC foi o primeiro computador digital de propoacutesito geral

Criado para a realizaccedilatildeo de caacutelculos baliacutesticos A programaccedilatildeo era feita em paineacuteis atraveacutes de

fios utilizando linguagem de maacutequina Natildeo existia o conceito de sistema operacional Outros

computadores foram construiacutedos nessa eacutepoca mas eram utilizados apenas em universidades e

oacutergatildeos militares

SEGUNDA GERACcedilAtildeO (1956-1965)

Transistores e Sistemas em Lote (batch)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1365

13

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

A criaccedilatildeo do transistor e das memoacuterias magneacuteticas contribuiu para o enorme avanccedilo dos

computadores da eacutepoca O transistor permitiu o aumento da velocidade e da confiabilidade do

processamento as memoacuterias magneacuteticas permitiram o acesso mais raacutepido aos dados maior

capacidade de armazenamento e computadores menores

Surgiram os primeiros sistemas operacionais para tentar automatizar as tarefas manuais

ateacute entatildeo realizadas e as primeiras linguagens de programaccedilatildeo como Assembly e Fortran Os

programas deixaram de ser feitos diretamente no hardware o que facilitou enormemente o

processo de desenvolvimento de programas Surgiu o processamento em batch em que um lote

(batch) de programas e de dados era submetido ao computador por vez

Terceira geraccedilatildeo (1966-1980)

Circuitos Integrados e Multiprogramaccedilatildeo

Por meio dos circuitos integrados e posteriormente dos microprocessadores foi possiacutevelviabilizar e difundir o uso de sistemas computacionais por empresas devido agrave diminuiccedilatildeo de seus

custos de aquisiccedilatildeo Houve um aumento no poder de processamento e diminuiccedilatildeo no tamanho

dos equipamentos

A evoluccedilatildeo dos processadores de entradasaiacuteda permitiu que enquanto um programa

esperasse por uma operaccedilatildeo de leituragravaccedilatildeo o processador executasse um outro programa

Para tal a memoacuteria foi dividida em particcedilotildees em que um programa esperava sua vez para ser

processado A essa teacutecnica de compartilhamento da memoacuteria principal e processador deu-se onome de multiprogramaccedilatildeo

QUARTA GERACcedilAtildeO (1981-1990)

Computadores Pessoais

Os mini e superminicomputadores se firmaram no mercado e os microcomputadores

ganharam um grande impulso Surgem as estaccedilotildees de trabalho (workstations) que apesar de

monousuaacuterias permitem que se executem diversas tarefas concorrentemente criando o conceito

de multitarefa

No final dos anos 80 os computadores tiveram um grande avanccedilo decorrente de aplicaccedilotildees que

exigiam um enorme volume de caacutelculos Para acelerar o processamento foram adicionados

outros processadores exigindo dos sistemas operacionais novos mecanismos de controle e

sincronismo Com o multiprocessamento foi possiacutevel a execuccedilatildeo de mais de um programa

simultaneamente ou ateacute de um mesmo programa por mais de um processador Foram

introduzidos processadores vetoriais e teacutecnicas de paralelismo de processamento fazendo com

que os computadores se tornassem ainda mais poderosos

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1465

14

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O uso das redes distribuiacutedas se difundiu por todo o mundo permitindo o acesso a outros

sistemas de computaccedilatildeo independentemente de cidade paiacutes e ateacute mesmo fabricante Os

softwares de rede passaram a estar intimamente relacionados com o sistema operacional de cada

maacutequina e surgem os sistemas operacionais de rede

QUINTA GERACcedilAtildeO (1991ATUALMENTE)

Houve grandes avanccedilos em termos de hardware software e telecomunicaccedilotildees como

consequecircncia da evoluccedilatildeo das aplicaccedilotildees que necessitavam cada vez mais de capacidade de

processamento e armazenamento de dados Sistemas especialistas sistemas multimiacutedia bancos

de dados distribuiacutedos inteligecircncia artificial e redes neurais satildeo apenas alguns exemplos da

necessidade cada vez maior de informaccedilatildeo e de capacidade de processamento O conceito de

processamento distribuiacutedo eacute explorado nos sistemas operacionais de forma que suas funccedilotildees

estejam espalhadas por vaacuterios processadores atraveacutes de redes de computadores A deacutecada de 90 foi definitiva para a consolidaccedilatildeo dos sistemas operacionais baseados em

interfaces graacuteficas

Atualmente temos as plataformas multicore (vaacuterios nuacutecleos) disponiacuteveis em computadores

pessoais e ateacute notebooks possibilitando cada vez mais a paralelizaccedilatildeo de aplicaccedilotildees e elevando

em muito o tempo de execuccedilatildeo dos programas Os fanaacuteticos pelos jogos de computador que o

digam

Os sistemas operacionais - satildeo parte fundamental dos computadores satildeo responsaacuteveis pororganizar os processos (programas) que estatildeo sendo executados pelo processador criando uma

fila de processos que garante que todos receberatildeo sua parcela de processamento

Para Fixar

Escreva um breve resumo sobre o processo evolutivo dos Softwares

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________ __________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1565

15

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

PRINCIacutePAIS SISTEMAS OPERACIONAIS

Principais SO que deram iniacutecio a era Windows MCs Linux e Unix

1987 ndash Andrew Tanenbaum um professor de computaccedilatildeo holandecircs desenvolve um sistema

operacional didaacutetico simplificado mas respeitando a API do UNIX que foi batizado como Minix

1987 ndash IBM e Microsoft apresentam a primeira versatildeo do OS2 um sistema multitarefa destinado

a substituir o MS-DOS e o Windows Mais tarde as duas empresas rompem a parceria a IBM

continua no OS2 e a Microsoft investe no ambiente Windows

1991 ndash Linus Torvalds um estudante de graduaccedilatildeo Finlandecircs inicia o desenvolvimento do Linux

lanccedilando na rede Usenet o nuacutecleo 001 logo abraccedilado por centenas de programadores ao redor

do mundo

1993 ndash a Microsoft lanccedila o Windows NT o primeiro sistema 32 bits da empresa

Capiacutetulo 2 ndash Banco de Dados

Banco de dados eacute um arquivo especial que armazena dados arrumados sob forma de

tabelas ou matrizes (em linhas e colunas) Quando um conjunto de informaccedilotildees possui muitasvariaacuteveis interligadas entre si eacute aconselhaacutevel que sejam armazenadas e trabalhadas em um

banco de dados Os bancos de dados fornecem uma seacuterie de funcionalidades que natildeo satildeo

encontradas em arquivos comuns ldquoBancos de dados satildeo coleccedilotildees de informaccedilotildees que se

relacionam de forma que crie um sentidordquo Satildeo de vital importacircncia para empresas e haacute duas

deacutecadas se tornaram a principal peccedila dos sistemas de informaccedilatildeo ldquoFonte Wikipeacutediardquo

Entatildeo um banco de dados eacute uma entidade na qual eacute possiacutevel armazenar dados de maneira

estruturada e com a menor redundacircncia possiacutevel Estes dados devem poder ser utilizadas porprogramas por usuaacuterios diferentes Assim a noccedilatildeo baacutesica de dados eacute acoplada geralmente a

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1665

16

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

uma rede a fim de poder pocircr conjuntamente estas informaccedilotildees daiacute o nome banco Fala-se

geralmente de sistema de informaccedilatildeo para designar toda a estrutura que reuacutene os meios

organizados para poder compartilhar dados

DADOS amp INFORMACcedilOtildeES

Muitos consideram dados e informaccedilotildees como palavras sinocircnimas mas na verdade natildeo satildeo

Para entender o que eacute um banco de dados eacute muito importante saber a diferenccedila entre essas duas

palavras

Dados satildeo fatos brutos em sua forma primaacuteria E muitas vezes os dados podem natildeo fazer

sentido sozinhos

Informaccedilotildees consistem no agrupamento de dados de forma organizada para fazer sentido

gerar conhecimento

Por exemplo o nuacutemero 2001 isoladamente faz algum sentido Natildeo Isso eacute um dado E se eu

dissesse ldquoAno do atentado terrorista agraves torres gecircmeas 2001Prime Agora faz sentido Isso eacute

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1765

17

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

uma informaccedilatildeo Um banco de dados eacute uma estrutura de dados organizada que permite a

extraccedilatildeo de informaccedilotildees

Metadados ndash Eacute todo dado relativo a outro dado eacute chamado de metadados No exemplo anterior

do ano 2001 o dado ldquoAno do atentado terrorista agraves torres gecircmeasrdquo eacute um metadado pois ele eacute um

dado sobre o dado ldquo2001rdquo Outro exemplo mais comum em banco de dados o campo telefone da

tabela cliente tem entre outros os seguinte metadados nome (telefone) tipo (texto) tamanho (30

caracteres) obrigatoriedade (natildeo) etc

Um banco de dados eacute formado por dado e metadados Sem os metadados natildeo seria

possiacutevel organizar e extrair informaccedilotildees de um banco de dados

Para Fixar

Dados - Em informaacutetica designa-se por dados os elementos de partida que servem de base

para o tratamento e sobre os quais o computador efetua as operaccedilotildees necessaacuterias agrave tarefa emquestatildeo

Os dados satildeo uma representaccedilatildeo dos fatos conceitos ou instruccedilotildees de uma maneira

normalizada que se adapte agrave comunicaccedilatildeo interpretaccedilatildeo e processamento pelo ser humano ou

atraveacutes de maacutequinas automaacuteticas

Os dados satildeo representados por siacutembolos como por exemplo as letras do alfabeto a b c

etc mas natildeo satildeo em si a informaccedilatildeo desejada

ExemploO I O C O M B - satildeo dados mas natildeo eacute informaccedilatildeo perceptiacutevel ao homem

A informaccedilatildeo natildeo eacute mais do que dados organizados e ordenados de forma uacutetil Isto eacute informaccedilatildeo

eacute o conhecimento produzido como resultado do processamento de dados

Se processarmos os dados que tiacutenhamos anteriormente entatildeo obtemos a informaccedilatildeo

O I O C O M B - Dados

- Processamento

C O M B O I O ndash Informaccedilatildeo

Para fixar

Escreva o significado de

Dados___________________________________________________________________

_________________________________________________________________________

Informaccedilatildeo_______________________________________________________________

_________________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1865

18

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Metadados_______________________________________________________________

_________________________________________________________________________

Banco de

dados___________________________________________________________________

_________________________________________________________________________

A histoacuteria dos bancos de dados

Hoje os bancos de dados satildeo essenciais para muitas empresas e estatildeo no coraccedilatildeo de

muitos sistemas computacionais Ter acesso raacutepido agraves informaccedilotildees eacute muito importante para a

correta tomada de decisotildees em um negoacutecio Se vocecirc pretende trabalhar com desenvolvimento de

softwares com certeza precisaraacute trabalhar com bancos de dados em algum momento Conhecer

a histoacuteria dos bancos de dados e como eles evoluiacuteram eacute muito importante para entender como os

bancos de dados mais comuns satildeo organizados Entatildeo como aconteceu a evoluccedilatildeo dos bancos

de dados

Antigamente as empresas armazenavam dados em fichas de papel que eram organizadas

em arquivos fiacutesicos atraveacutes de pastas Extrair informaccedilotildees e manter esses arquivos organizados

era uma tarefa muito custosa Aleacutem disso o acesso agrave informaccedilatildeo dependia da localizaccedilatildeo

geograacutefica dos arquivos Enfim esses arquivos fiacutesicos evoluiacuteram para arquivos digitais No iniacutecio

cada entidade (clientes funcionaacuterios produtos etc) era um arquivo de dados que eram

acompanhados de um ldquosoftware simplesrdquo para manipular os dados do arquivo esses softwares

permitiam realizar operaccedilotildees de cadastro alteraccedilatildeo exclusatildeo e consulta nos arquivos digitais De

fato melhorou bastante principalmente a tarefa de consulta de informaccedilotildees poreacutem os arquivos

digitais eram ainda uma versatildeo melhorada dos arquivos fiacutesicos

Mas as entidades precisavam relacionar-se por exemplo um produto eacute fornecido por

um fornecedor e com os arquivos digitais relacionaacute-las natildeo era uma tarefa muito trivial os

ldquosoftwares simplesrdquo para manipular os arquivos digitais comeccedilaram a ficar ldquocomplexosrdquo para

permitir os relacionamentos entre entidades Entatildeo na deacutecada de 60 a empresa IBM investiu

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1965

19

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

fortemente em pesquisas para solucionar estes problemas dos bancos de dados digitais

primitivos Vaacuterios modelos de bancos de dados surgiram nesta eacutepoca dentre eles os modelos

hieraacuterquicos e rede

Em junho de 1970 o pesquisador Edgar Frank ldquoTedrdquo Codd da IBM mudou a histoacuteria dos

bancos de dados apresentando o modelo relacional no artigo intitulado ldquoA Relational Model of

Data for Large Shared Data Banksrdquo (Um modelo relacional de dados para grandes bancos de

dados compartilhados) onde o autor apresentou uma forma de usuaacuterios sem conhecimento

teacutecnico armazenarem e extraiacuterem grandes quantidades de informaccedilotildees de um banco de dados

Esse artigo foi o grande impulso para a evoluccedilatildeo dos bancos de dados a partir do artigo de ldquoTedrdquo

Codd que os cientistas aprofundaram a ideia de criar o modelo de banco de dados relacional

BANCO DE DADOS RELACIONAL

Apesar de ter sido o marco dos bancos de dados relacionais o artigo de Codd natildeo foimuito explorado no iniacutecio Soacute no final da deacutecada de 70 que foi desenvolvido um sistema baseado

nas ideias do cientista o ldquoSistema Rrdquo Junto com esse sistema foi criado a linguagem de consulta

estruturada (SQL ndash Structured Query Language) que se tornou a linguagem padratildeo para bancos

de dados relacionais Embora tenha contribuiacutedo para a evoluccedilatildeo dos bancos de dados

relacionais o ldquoSystem Rrdquo natildeo foi muito bem sucedido comercialmente mas os sistemas de banco

de dados seguintes foram baseados nele

Nos anos 80 surgiram outros bancos de dados a Oracle apresentou o Oracle 2 e a IBMo SQLDS (que se tornou DB2) ambos sistemas comerciais de bancos de dados Na sequencia

vieram SQL Server MySQL DBase III Paradox etchellip

BANCOS DE DADOS HOJE

Atualmente existem vaacuterios modelos de bancos de dados tais como orientado a objetos

orientado a documentos etc Mas o mais comum ainda eacute o banco de dados relacional A decisatildeo

entre qual modelo de banco de dados utilizarem baseia-se no tipo de dados que vocecirc pretende

armazenar Por exemplo se vocecirc for armazenar uma grande quantidade de dados em um modelo

pequeno (imagine um banco de dados para o twitter) eacute mais indicado utilizar um banco de dados

orientado a documentos a um banco de dados relacional Muitas questotildees envolvem essa

decisatildeo mas natildeo eacute uma questatildeo de superioridade entre uma ou outra tecnologia todas tecircm proacutes

e contras e satildeo mais indicadas ou natildeo para cada problema

Para fixar

Faccedila um breve resumo sobre o surgimos dos bancos de dados

______________________________________________________________________________

______________________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2065

20

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

Dados amp Informaccedilatildeo

A informaccedilatildeo eacute encarada atualmente como um dos recursos mais importantes de uma

organizaccedilatildeo contribuindo decisivamente para a sua maior ou menor competitividade De fato

com o aumento da concorrecircncia tornou-se vital melhorar as capacidades de decisatildeo a todos osniacuteveis

Hoje mais que nunca a tomada de decisatildeo nas organizaccedilotildees eacute um processo complexo

dada a qualidade de informaccedilatildeo em jogo a sua complexidade e a frequecircncia com que se altera

No entanto para que possa ser utilizada com um apoio eficaz agrave tomada de decisatildeo a informaccedilatildeo

soacute tecircm valor se verificarem simultaneamente algumas condiccedilotildees

ATUALIDADE ndash O valor da informaccedilatildeo dependeraacute em grande parte da sua atualidade

Dado o dinamismo verificado em todos os setores da sociedade em geral e do ambiente

empresarial em particular o periacuteodo de validade da informaccedilatildeo eacute cada vez mais curto Torna-se

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2165

21

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

necessaacuterio dispor de fontes de informaccedilatildeo que acompanhem continuamente essas modificaccedilotildees

Soacute com base em informaccedilatildeo atualizada se podem tomar decisotildees acertadas

CORRECcedilAtildeO ndash Natildeo basta que a informaccedilatildeo seja atual eacute tambeacutem necessaacuterio que na

medida do possiacutevel seja rigorosa Soacute com informaccedilatildeo correta se pode decidir com confianccedila

RELEVAcircNCIA ndash Dado o grande de volume de informaccedilatildeo envolvida o processo de tomada

de decisatildeo ao contraacuterio de ser facilitado pode ser dificultado pelo excesso de informaccedilatildeo A

informaccedilatildeo deve ser devidamente filtrada de tal forma que apenas aquela com relevacircncia para

cada situaccedilatildeo seja considerada

DISPONIBILIDADE ndash Ainda que a informaccedilatildeo verifique os trecircs requisitos anteriores a sua

utilidades poderaacute ser posta em causa se natildeo puder ser disponibilizada de forma imediata no

momento em que eacute solicitada As decisotildees muito ponderadas com o longo periacuteodo de gestaccedilatildeo

satildeo cada vez mais situaccedilotildees do passado Hoje dadas as caracteriacutesticas do meio envolvente oprocesso de tomada de decisatildeo tem que ser quase instantacircneo Para isso a informaccedilatildeo tem que

ser disponibilizada rapidamente caso contraacuterio deixa de ser uacutetil

LEGIBILIDADE - Esta condiccedilatildeo apesar de apresentada em uacuteltimo lugar natildeo eacute por isso

menos importante A informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada

De fato de nada vale que a informaccedilatildeo seja atual precisa relevante e disponibilizada em

tempo oportuno se natildeo puder ser entendida A forma como eacute disponibilizada tem tambeacutem grande

importacircncia informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada A forma como eacutedisponibilizada tem tambeacutem grande importacircncia

Quanto aos requisitos de atualidade e correccedilatildeo da informaccedilatildeo para que esta possa ser

correta e atual os dados de onde eacute derivada tecircm forccedilosamente que ser precisos e atualizados

Quanto aos requisitos de relevacircncia disponibilidade e legibilidade da informaccedilatildeo estes tecircm mais

a ver com os meios utilizados para o processamento dos dados

Como eacute que a informaccedilatildeo eacute organizada

A organizaccedilatildeo da informaccedilatildeo eacute efetuada de acordo com criteacuterios distintos como

Hierarquia dos seus componentes

O tipo de assunto a que se refere

Forma de armazenamento

Quanto agrave HIERARQUIA DOS COMPONENTES DA INFORMACcedilAtildeO esta eacute organizada em

Caracteres Campos Registros Ficheiros Caracteres - podem ser numeacutericos alfabeacuteticos ou

sinais de pontuaccedilatildeo Campos - satildeo conjuntos de caracteres que identificam um componente de

um registo Registos - satildeo agrupamentos de campos descritivos de uma realidade Ficheiros - satildeo

conjuntos de registos cuja informaccedilatildeo eacute estruturalmente analoacutegica

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2265

22

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Quanto AO TIPO DE ASSUNTO a que se refere agrave informaccedilatildeo

Esta pode ser como que etiquetada de modo a tornar faacutecil a sua procura e a evitar perdas

de tempo

Quando a informaccedilatildeo estaacute armazenada em ficheiros estes indicam o seu tipo atraveacutes de

uma extensatildeo ao nome do ficheiro

Algumas das extensotildees mais comuns satildeo

- COM ficheiro de comandos - BACK backup ou coacutepias de seguranccedila- EXE executaacuteveis - SYS ficheiros de sistema

- BAT processamento batch - XLS folha de caacutelculo provenientes do Excel

- TXT texto no formato ASCII - PPT apresentaccedilotildees provenientes do PowerPoint

- PAS programas em Linguagem Pascal - MBD base de dados provenientes do Access

- C programas em Linguagem C - DOC documentos provenientes de um processador de

texto

Quanto Agrave FORMA DE ARMAZENAMENTO da informaccedilatildeoRelativamente ao armazenamento por exemplo no disco riacutegido do computador a

informaccedilatildeo eacute organizada em diretorias cujo nome revela o tipo de ficheiros que aiacute se encontram

podendo cada diretorias conter diversas subdiretorias

Organizaccedilatildeo dos dados num Computador

Os dados que fornecemos a um computador para processar podem ser de trecircs tipos

quantitativos classificativos referenciais

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2365

23

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Dados quantitativos - satildeo os que exprimem quantidades e por isso normalmente servem

de base para caacutelculos aritmeacuteticos Exemplo a ficha escolar as notas do periacuteodo as faltas o total

das faltas

bull Dados classificativos - satildeo os que descrevem ou especificam os elementos envolvidos e

quantificados Normalmente servem de complemento aos dados quantitativos identificando

pessoas objetos situaccedilotildees etc Natildeo servem portanto para elementos de caacutelculo Exemplo a

ficha escolar o nome do aluno o nome da disciplina o nome do professor

bull Dados referenciais - satildeo dados que permitem controlar e referenciar os elementos

tratados Exemplo a ficha escolar o ano letivo o nuacutemero do aluno a turma

Para fixar

Escreva de forma resumida como podemos organizar os dados

_________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

Tipos de Operaccedilotildees realizadas sobre os dados

O tipo de operaccedilotildees efetuadas depende dos objetivos do processamento e igualmente dostipos de dados nele envolvidos pois o computador pode processar dados numeacutericos ou natildeo

numeacutericos Assim temos como operaccedilotildees possiacuteveis num processamento

bull Operaccedilotildees aritmeacuteticas - satildeo efetuadas apenas sobre dados numeacutericos e satildeo

basicamente constituiacutedas por somas subtraccedilotildees multiplicaccedilotildees divisotildees e outras similares

bull Operaccedilotildees loacutegicas - satildeo efetuadas sobre dados numeacutericos ou natildeo numeacutericos Estas

operaccedilotildees satildeo tambeacutem por vezes designadas por operaccedilotildees de comparaccedilatildeo

bull Operaccedilotildees de movimentaccedilatildeo interna - satildeo efetuadas sobre qualquer tipo de dados e

consistem na coacutepia e mudanccedila de localizaccedilatildeo interna dos dados na memoacuteria do computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2465

24

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Operaccedilatildeo de InputOutput - satildeo as operaccedilotildees que envolvem os oacutergatildeos de entrada e

saiacuteda permitindo a comunicaccedilatildeo entre o operador e a maacutequina

Funccedilotildees do processamento de dados

Considera-se como processamento de dados o conjunto de todas as operaccedilotildees efetuadas desde

a entrada dos dados ateacute agrave saiacuteda da informaccedilatildeo Todas estas operaccedilotildees de vaacuterios tipos satildeo

normalmente associadas a seis funccedilotildees do processamento de dados input ordenaccedilatildeo

processamento armazenamento output e controle

bull Input - fase de seleccedilatildeo e aquisiccedilatildeo dos dados pelo computador

bull Ordenaccedilatildeo - esta eacute uma funccedilatildeo auxiliar O seu objetivo eacute dispor os dados de uma forma

organizada (ordenada) de modo a facilitar o seu tratamento Se os dados se mantiverem

ordenados segundo um determinado criteacuterio preacute-definido a sua pesquisa eacute mais faacutecil o que faz

aumentar a velocidade do processamento

bull Processamento - considera-se processamento ao conjunto de todas as operaccedilotildees

efetuadas internamente pelo computador na manipulaccedilatildeo dos dados

bull Armazenamento - esta eacute uma funccedilatildeo muito importante que permite posteriormente

analisar as etapas e os resultados do processamento

bull Output - eacute a obtenccedilatildeo de resultados sob a forma de informaccedilatildeo significativa para as

pessoas a quem se destina

bull Controle - a sua finalidade eacute detectar corrigir e eliminar possiacuteveis erros ou afastamentosem relaccedilatildeo aos objetivos inicialmente traccedilados

Utilidade de um banco de dados

Um banco de dados permite pocircr dados agrave disposiccedilatildeo de usuaacuterios para uma consulta uma

introduccedilatildeo ou uma atualizaccedilatildeo assegurando-se dos direitos atribuiacutedos a estes uacuteltimos Isso eacute

ainda mais uacutetil quando os dados informaacuteticos satildeo cada vez mais numerosos

Um banco de dados pode ser local quer dizer utilizaacutevel em uma maacutequina por um usuaacuterio

ou repartida quer dizer que as informaccedilotildees satildeo armazenadas em maacutequinas distantes eacessiacuteveis por rede A vantagem essencial da utilizaccedilatildeo dos bancos de dados eacute a possibilidade

de poder ser acessada por vaacuterios usuaacuterios simultaneamente

A gestatildeo dos bancos de dados

A fim de poder controlar os dados bem como os usuaacuterios a necessidade de um sistema de

gestatildeo fez-se sentir rapidamente A gestatildeo do banco de dados faz-se graccedilas a um sistema

chamado SGBD (sistema de gestatildeo de bancos de dados) ou em inglecircs DBMS (Database

managment system) O SGBD eacute um conjunto de serviccedilos (aplicaccedilotildees software) que permitem

gerenciar os bancos de dados quer dizer

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2565

25

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Permitir o acesso aos dados de maneira simples

Autorizar um acesso agraves informaccedilotildees a muacuteltiplos usuaacuterios

Manipular os dados presentes no banco de dados (inserccedilatildeo supressatildeo modificaccedilatildeo)

O SGBD pode decompor-se em trecircs subsistemas

O sistema de gestatildeo de arquivos permite o armazenamento das informaccedilotildees num suporte

fiacutesico

O SGBD interno gerencia a emissatildeo das informaccedilotildees

O SGBD externo representa a interface com o usuaacuterio

Bancos de dados satildeo conjuntos de dados com uma estrutura regular que organizam

informaccedilatildeo Um banco de dados normalmente agrupa informaccedilotildees utilizadas para um mesmo fim

O modelo de dados mais adotado hoje em dia eacute o modelo relacional onde as estruturas

tecircm a forma de tabelas compostas por linhas e colunas

Resumindo um banco de dados eacute uma coleccedilatildeo de dados relacionados Entende-se por

dado toda a informaccedilatildeo que pode ser armazenada e que apresenta algum significado impliacutecito

dentro do contexto ao qual ele se aplica Por exemplo num sistema bancaacuterio uma pessoa eacuteidentificada pelo seu cpf(cliente) Em um sistema escolar a pessoa eacute identificada pelo seu nuacutemero

de matriacutecula(aluno) Aleacutem disso os dados que seratildeo armazenados em cada situaccedilatildeo podem

diferir consideravelmente

Atividades

1) Onde utilizar um banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2665

26

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2) Como funciona um sistema gerenciador de banco de dados

3) Como funciona o modelo relacional

Modelo Relacional

O modelo relacional eacute uma teoria matemaacutetica desenvolvida por Edgar Frank Codd para

descrever como as bases de dados devem funcionar Embora esta teoria seja a base para o

software de bases de dados relacionais muito poucos sistemas de gestatildeo de bases de dados

seguem o modelo de forma restrita e todos tecircm funcionalidades que violam a teoria desta forma

variando a complexidade e o poder A discussatildeo se esses bancos de dados merecem ser

chamados de relacional ficou esgotada com tempo com a evoluccedilatildeo dos bancos existentes

De acordo com a arquitetura ANSI SPARC em trecircs niacuteveis os Bancos de dados

relacionais consistem de trecircs componentes

bull uma coleccedilatildeo de estruturas de dados formalmente chamadas de relaccedilotildees ou

informalmente tabelas compondo o niacutevel conceitual

bull uma coleccedilatildeo dos operadores a aacutelgebra e o caacutelculo relacionais que constituem a base da

linguagem SQL

bull uma coleccedilatildeo de restriccedilotildees da integridade definindo o conjunto consistente de estados de

base de dados e de alteraccedilotildees de estados As restriccedilotildees de integridade podem ser de quatro

tipos

bull domiacutenio (ou tipo de dados) bull atributo

bull restriccedilotildees de base de dados

De acordo com o Princiacutepio de Informaccedilatildeo toda informaccedilatildeo tem de ser representada como dados

qualquer tipo de atributo representa relaccedilotildees entre conjuntos de dados

Nos bancos de dados relacionais os relacionamentos entre as tabelas natildeo satildeo codificados

explicitamente na sua definiccedilatildeo Em vez disso se fazem implicitamente pela presenccedila de

atributos chave As bases de dados relacionais permitem aos utilizadores (incluindo

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2765

27

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

programadores) escreverem consultas (queries) reorganizando e utilizando os dados de forma

flexiacutevel e natildeo necessariamente antecipada pelos projetistas originais

Esta flexibilidade eacute especialmente importante em bases de dados que podem ser utilizadas

durante deacutecadas tornando as bases de dados relacionais muito populares no meio comercial

Um dos pontos fortes do modelo relacional de banco de dados eacute a possibilidade de

definiccedilatildeo de um conjunto de restriccedilotildees de integridade Estas definem os conjuntos de estados e

mudanccedilas de estado consistentes do banco de dados determinando os valores que podem e os

que natildeo podem ser armazenados

Aplicaccedilotildees de bancos de dados

Bancos de dados satildeo usados em muitas aplicaccedilotildees enquanto atravessando virtualmente a

gama inteira de software de computador Bancos de dados eacute o meacutetodo preferido de

armazenamento para aplicaccedilotildees multiusuaacuterias grandes onde a coordenaccedilatildeo entre muitosusuaacuterios eacute necessaacuteria Ateacute mesmo usuaacuterios individuais os acham convenientes entretanto e

muitos programas de correio eletrocircnico e os organizadores pessoais estatildeo baseados em

tecnologia de banco de dados standard

Aplicativo de Banco de Dados

Um aplicativo de banco de dados eacute um tipo de software exclusivo para gerenciar um banco

de dados Aplicativos de banco de dados abrangem uma vasta variedade de necessidades e

objetivos de pequenas ferramentas como uma agenda ateacute complexos sistemas empresariaispara desempenhar tarefas como a contabilidade

O termo Aplicativo de Banco de dados usualmente se refere a softwares que oferecem

uma interface para o banco de dados Exemplos de aplicativos de banco de dados satildeo Microsoft

Visual FoxPro Microsoft Access dBASE FileMaker (em certa medida) HyperCard MySQL

PostgreSQL Microsoft SQL Server e Oracle

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2865

28

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Capiacutetulo 3 - HARDWARE E SOFTWARE

O QUE Eacute O HARDWARE

No acircmbito da informaacutetica eacute dada a designaccedilatildeo de hardware a todos os componentes

fiacutesicos que fazem parte de um sistema informaacutetico incluiacutedo toda a parte fiacutesica de um computador

(nomeadamente os processadores motherbord disco riacutegido placas de som placas de viacutedeo

memoacuterias etc) e todos os perifeacutericos (tais como teclados mouse monitores impressoras

scanners modems entre outros)

Peccedilas de um computador

Se vocecirc usa um computador desktop jaacute deve saber que natildeo existe uma parte uacutenica

chamada computador Um computador eacute na verdade um sistema de muitas partes funcionando

em conjunto As partes fiacutesicas que vocecirc pode ver e tocar satildeo denominadas

coletivamente hardware (O software por outro lado se refere agraves instruccedilotildees ou programas que

dizem ao hardware o que fazer)

A ilustraccedilatildeo a seguir mostra os dispositivos de hardware mais comuns em um sistema de

computador desktop Seu sistema pode ter uma aparecircncia um pouco diferente mas

provavelmente possui a maioria destas peccedilas Um computador laptop possui peccedilas semelhantes

mas as combina em um uacutenico pacote do tamanho de um caderno

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2965

29

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Sistema de computador desktop

Unidade de sistema

A unidade de sistema (Gabinete) eacute o nuacutecleo de um sistema de computador Normalmente

eacute uma caixa retangular colocada sobre a mesa ou embaixo dela Dentro dessa caixa estatildeo os

componentes eletrocircnicos que processam as informaccedilotildees O mais importante desses

componentes eacute a CPU (unidade de processamento central) ou microprocessador que atua como

o ceacuterebro do computador Outro componente eacute a memoacuteria RAM que armazena

temporariamente informaccedilotildees utilizadas pela CPU enquanto o computador estaacute ligado As

informaccedilotildees gravadas na RAM satildeo apagadas quando o computador eacute desligado

Quase todas as outras partes do computador se conectam agrave unidade de sistema por meio

de cabos Os cabos satildeo conectados aportas (aberturas) especiacuteficas geralmente na parte traseira

da unidade de sistema O hardware que natildeo faz parte da unidade de sistema eacute

chamado dispositivo perifeacuterico ou simplesmente dispositivo

Unidade de sistema

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3065

30

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Armazenamento

O computador possui uma ou mais unidades de disco ou seja dispositivos que armazenam

informaccedilotildees em um disco de plaacutestico ou de metal O disco preserva as informaccedilotildees mesmo

quando o computador estaacute desligado

Unidade de disco riacutegido

A unidade de disco riacutegido do computador armazena informaccedilotildees em um disco riacutegido que eacute um

prato riacutegido ou pilha de pratos com uma superfiacutecie magneacutetica Como os discos riacutegidos podem

reter uma grande quantidade de informaccedilotildees normalmente eles funcionam como principal meio

de armazenamento do computador guardando praticamente todos os programas e arquivos Em

geral a unidade de disco riacutegido fica localizada dentro da unidade de sistema

Unidade de disco riacutegidoUnidades de CD e DVD

Hoje em dia quase todos os computadores vecircm equipados com uma unidade de CD ou DVD

geralmente localizada na frente da unidade de sistema As unidades de CD usam lasers para ler

(recuperar) dados de um CD Muitas delas tambeacutem podem gravar dados em CDs Se vocecirc tiver

uma unidade de disco gravaacutevel poderaacute armazenar coacutepias de seus arquivos em CDs vazios A

unidade de CD tambeacutem serve para tocar CDs de muacutesica no computador

CD

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3165

31

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

As unidades de DVD fazem o mesmo que as unidades de CD e tambeacutem lecircem DVDs Se vocecirc

tiver uma unidade de DVD poderaacute ver filmes no computador Muitas unidades de DVD podem

gravar dados em DVDs vazios

Dica

Se vocecirc tiver uma unidade de CD ou DVD gravaacutevel faccedila backup (copie) periodicamente de seus

arquivos importantes em CDs ou DVDs Dessa forma caso venha a ocorrer alguma falha no disco

riacutegido vocecirc natildeo perderaacute os dados

Unidade de disquete

As unidades de disquete armazenam informaccedilotildees em discos tambeacutem chamados discos

flexiacuteveis ou disquetes Comparado a CDs e DVDs os disquetes podem armazenar apenas uma

pequena quantidade de dados Eles tambeacutem recuperam informaccedilotildees de forma mais lenta e satildeo

mais vulneraacuteveis a danos Por esses motivos as unidades de disquete satildeo cada vez menosusadas embora ainda sejam incluiacutedas em alguns computadores

Disquete

Por que estes discos satildeo chamados de disquetes Apesar de a parte externa ser composta de

plaacutestico riacutegido isso eacute apenas a capa O interior do disco eacute feito de um material de vinil fino e

flexiacutevel

Mouse

Mouse eacute um pequeno dispositivo usado para apontar e selecionar itens na tela do computador

Embora existam mouses de vaacuterias formas o modelo mais comum se assemelha a um rato (como

diz o nome em inglecircs) Ele eacute pequeno e alongado sendo conectado agrave unidade de sistema por um

cabo comprido que faz lembrar uma cauda Alguns mouses mais novos satildeo sem fio

Mouse

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3265

32

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O mouse geralmente possui dois bototildees um botatildeo principal (normalmente o da esquerda) e um

botatildeo secundaacuterio Muitos mouses tambeacutem tecircm uma roda entre os dois bototildees que permite

percorrer as telas de informaccedilotildees

Ponteiros do mouse

Agrave medida que vocecirc move o mouse com a matildeo um ponteiro na tela se move na mesma direccedilatildeo

(A aparecircncia do ponteiro pode mudar dependendo da sua posiccedilatildeo na tela) Quando quiser

selecionar um item aponte para ele e clique no botatildeo principal ou seja pressione-o e solte-o

Apontar e clicar com o mouse eacute a principal maneira de interagir com o computador Para mais

informaccedilotildees consulte Usando o mouse

Teclado

A finalidade principal do teclado eacute digitar texto no computador Ele possui teclas para letras e

nuacutemeros exatamente como em uma maacutequina de escrever A diferenccedila estaacute nas teclas especiais

As teclas de funccedilatildeo localizadas na linha superior executam funccedilotildees diferentes dependendo

de onde satildeo usadas

O teclado numeacuterico localizado agrave direita na maioria dos teclados permite inserir nuacutemeros

rapidamente

As teclas de navegaccedilatildeo como as teclas de seta permitem mover sua posiccedilatildeo dentro de

documentos ou paacuteginas da Web

Teclado

Vocecirc tambeacutem pode usar o teclado para executar muitas das mesmas tarefas que executa com

um mouse Para mais informaccedilotildees consulte Usando o teclado

Monitor

O monitor exibe informaccedilotildees em forma visual usando texto e elementos graacuteficos A parte do

monitor que exibe as informaccedilotildees eacute chamada tela Como a tela de uma televisatildeo a tela de um

computador pode mostrar imagens paradas ou em movimento

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3365

33

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Existem dois tipos baacutesicos de monitores CRT (tubo de raios catoacutedicos) e LCD (viacutedeo de cristal

liacutequido) Ambos produzem imagens niacutetidas mas os monitores LCD levam vantagem por serem

mais finos e mais leves

Monitor LCD (agrave esquerda) monitor CRT (agrave direita)

Impressora

Uma impressora transfere dados de um computador para o papel Vocecirc natildeo precisa de

impressora para usar o computador mas se tiver uma poderaacute imprimir emails cartotildees convites

anuacutencios e outros materiais Muitas pessoas tambeacutem preferem imprimir suas fotos em casa

Os dois principais tipos de impressora satildeo a jato de tinta e a laser As impressoras a jato de tinta

satildeo as mais populares para uso domeacutestico Elas podem imprimir em preto e branco ou em cores

e produzem fotos de alta qualidade quando usadas com papel especial As impressoras a laser

satildeo mais raacutepidas e mais adequadas para uso intenso

Impressora a jato de tinta (agrave esquerda) impressora a laser (agrave direita)

Alto-falantes

Os alto-falantes satildeo usados para tocar som Eles podem vir embutidos na unidade de sistema ou

ser conectados com cabos Satildeo eles que permitem ouvir muacutesica e efeitos de som no computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3465

34

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Alto-falantes do computador

Modem

Para conectar o computador agrave Internet vocecirc precisa de um modem um dispositivo que envia e

recebe informaccedilotildees do computador por linha telefocircnica ou cabo de alta velocidade Agraves vezes os

modems vecircm embutidos na unidade de sistema mas os de alta velocidade normalmente satildeo

componentes separados

Modem a cabo

O QUE Eacute O SOFTWARE

O Software eacute uma aplicaccedilatildeo ou programa do computador escrita numa determinadalinguagem interpretaacutevel por uma determinada maacutequina (o processador de um computador ou

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3565

35

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

outro equipamento) e que permite executar determinadas tarefas para as quais o software foi

projetado Estes programas satildeo compostos por uma sequecircncia de instruccedilotildees (os comandos) e de

declaraccedilotildees de dados as quais satildeo armazenaacuteveis num meio digital

Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por um

computador com o objetivo de executar tarefas especiacuteficas Tambeacutem pode ser definido como

os programas que comandam o funcionamento de um computador

Em um computador o software eacute classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer

instruccedilotildees para o hardware O hardware eacute toda a parte fiacutesica que constitui o computador por

exemplo a CPU a memoacuteria e os dispositivos de entrada e saiacuteda O software eacute constituiacutedo por

todos os programas que existem para um referido sistema quer sejam produzidos pelo proacuteprio

utente ou pelo fabricante do computador

O termo inglecircs software foi usado pela primeira vez em 1958 em um artigo escrito pelo cientistaamericano John Wilder Tukey Foi tambeacutem ele o responsaacutevel por introduzir o termo bit para

designar diacutegito binaacuterio

Os softwares podem ser classificados como

SOFTWARE DE SISTEMA

Geralmente dividido em SISTEMAS OPERACIONAIS e PROGRAMAS UTILITAacuteRIOS Para

comeccedilar os Sist Operacionais satildeo de grande importacircncia pois eles nos datildeo a opccedilatildeo de dizer ao

computador o que ele deve fazer Dois exemplos bastante conhecidos do nosso puacuteblico satildeoo Mac o Windows e o Linux Os Programas utilitaacuterios geralmente satildeo softwares de menor porte

com funccedilotildees mais especificas tipo Verificaccedilatildeo de Disco Coacutepias de Seguranccedila entre outros

SOFTWARE APLICATIVO

Neste tipo de software se enquadram todos aqueles programas que satildeo utilizados na execuccedilatildeo

de tarefas especiacuteficas Posso citar vaacuterios exemplos mas os mais comuns satildeo os processadores

de texto como o Word que servem para trabalhar com os mais diversos tipos de textos emitir

etiquetas e fazer formulaacuterios as planilhas eletrocircnicas como o Excel satildeo poderosas ferramentas

de caacutelculos que facilitam tanto aquele trabalho aacuterduo de matemaacutetica fazer graacuteficos com real

representaccedilatildeo dos dados eacute uma coisa muito boa pra quem precisa e por uacuteltimo o que muitos

usam mas natildeo sabem o nome ao certo que satildeo os Browsers ou Navegadores softwares usados

para navegar na Web dentre eles os mais conhecidos atualmente satildeo Windows Internet

Explorer Firefox Google Chrome Opera e Safaacuteri

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3665

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3765

37

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

hoje eles satildeo bastante usados em situaccedilotildees de treinamentos de pessoas para enfrentar casos no

seu dia-a-dia

SOFTWARE DE JOGOS

Geralmente satildeo softwares relacionados a entretenimento para proporcionar lazer e diversatildeo

Dispotildeem de muitos recursos interativos e existem de todos os tipos desde estrateacutegias ateacute

simulaccedilotildees reais de muitas coisas como corridas (Need for Speed) ateacute mesmo de vida como o

Second Life

SOFTWARES ABERTOS

Satildeo aqueles que permitem que o usuaacuterio produza com liberdade e criatividade se classificam

nessa categoria aqueles softwares de apresentaccedilotildees bancos de dados e vaacuterios outros

Para fixar

Descreva uma definiccedilatildeo para os tipos de softwares

Software de Sistema_____________________________________________________________

Software Aplicativo ______________________________________________________________

Software de Linguagem __________________________________________________________

Software abertos _______________________________________________________________

Capiacutetulo 4 - Conceitos Baacutesicos de Banco de Dados

Segundo Korth um banco de dados ldquoeacute uma coleccedilatildeo de dados inter -relacionados

representando informaccedilotildees sobre um domiacutenio especiacuteficordquo ou seja sempre que for possiacutevel

agrupar informaccedilotildees que se relacionam e tratam de um mesmo assunto posso dizer que tenho

um banco de dados

Podemos exemplificar situaccedilotildees claacutessicas como uma lista telefocircnica um cataacutelogo de CDs ou um

sistema de controle de RH de uma empresa

Jaacute um sistema de gerenciamento de banco de dados (SGBD) eacute um software que possui

recursos capazes de manipular as informaccedilotildees do banco de dados e interagir com o usuaacuterio

Exemplos de SGBDs satildeo Oracle SQL Server DB2 PostgreSQL MySQL o proacuteprio Access ouParadox entre outros

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3865

38

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Por uacuteltimo temos que conceituar um sistema de banco de dados como o conjunto de quatro

componentes baacutesicos dados hardware software e usuaacuterios Date conceituou que ldquosistema de

bancos de dados pode ser considerado como uma sala de arquivos eletrocircnicardquo A Figura 1 ilustra

os componentes de um sistema de banco de dados

Componentes de um sistema de banco de dados

Os objetivos de um sistema de banco de dados satildeo o de isolar o usuaacuterio dos detalhes

internos do banco de dados (promover a abstraccedilatildeo de dados) e promover a independecircncia dos

dados em relaccedilatildeo agraves aplicaccedilotildees ou seja tornar independente da aplicaccedilatildeo a estrateacutegia de

acesso e a forma de armazenamento

Abstraccedilatildeo de dados

O sistema de banco de dados deve garantir uma visatildeo totalmente abstrata do banco de

dados para o usuaacuterio ou seja para o usuaacuterio do banco de dados pouco importa qual unidade de

armazenamento estaacute sendo usada para guardar seus dados contanto que os mesmos estejam

disponiacuteveis no momento necessaacuterio

Esta abstraccedilatildeo se daacute em trecircs niacuteveis (Figura 2) Niacutevel de visatildeo do usuaacuterio as partes do banco de dados que o usuaacuterio tem acesso de

acordo com a necessidade individual de cada usuaacuterio ou grupo de usuaacuterios

Niacutevel conceitual define quais os dados que estatildeo armazenados e qual o relacionamento

entre eles

Niacutevel fiacutesico eacute o niacutevel mais baixo de abstraccedilatildeo em que define efetivamente de que maneira

os dados estatildeo armazenados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3965

39

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 2 Niacuteveis de abstraccedilatildeo

Projeto de banco de dados

Todo bom sistema de banco de dados deve apresentar um projeto que visa a organizaccedilatildeo das

informaccedilotildees e utilizaccedilatildeo de teacutecnicas para que o futuro sistema obtenha boa performance e

tambeacutem facilite infinitamente as manutenccedilotildees que venham a acontecer

O projeto de banco de dados se daacute em duas fases

Modelagem conceitual Projeto loacutegico

Estas duas etapas se referem a um sistema de banco de dados ainda natildeo implementado ou seja

que ainda natildeo exista um novo projeto Para os casos em que o banco de dados jaacute exista mas eacute

um sistema legado por exemplo ou um sistema muito antigo sem documentaccedilatildeo o processo de

projeto de banco de dados se daraacute atraveacutes da utilizaccedilatildeo de uma teacutecnica chamada de Engenharia

Reversa que seraacute visto em outra oportunidade

Modelo conceitual

Eacute a descriccedilatildeo do BD de maneira independente ao SGBD ou seja define quais os dados

que apareceratildeo no BD mas sem se importar com a implementaccedilatildeo que se daraacute ao BD Desta

forma haacute uma abstraccedilatildeo em niacutevel de SGBD

Uma das teacutecnicas mais utilizadas dentre os profissionais da aacuterea eacute a abordagem entidade-

relacionamento (ER) onde o modelo eacute representado graficamente atraveacutes do diagrama entidade-

relacionamento (DER) (Figura 3)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 8: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 865

8

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

TERCEIRA GERACcedilAtildeO DOS COMPUTADORES - (1964 - 1971)

A 3ordf Geraccedilatildeo surgiu com a utilizaccedilatildeo dos Circuitos Integrados ndash SLT (Solid Logic Technolo-

gy) uma teacutecnica de micro circuitos Nesta geraccedilatildeo os computadores podiam realizar vaacuterios

processamentos simultacircneos As teacutecnicas de integraccedilatildeo evoluiacuteram de SSI (integraccedilatildeo em

pequena escala) para MSI (integraccedilatildeo em meacutedia escala) LSI (integraccedilatildeo em grande escala) e

VLSI (integraccedilatildeo em muito grande escala) Esta classificaccedilatildeo eacute baseada na quantidade de

componentes que o integrado conteacutem A programaccedilatildeo dos computadores desta geraccedilatildeo foi

facilitada pelo aparecimento de linguagens orientadas para o problema especiacutefico As linguagenssatildeo de natureza universal e assemelham-se cada vez mais a linguagem do homem As

operaccedilotildees de caacutelculos eram realizadas em bilioneacutesimos de segundos Realizando 1280000

adiccedilotildeessegundos

Com a terceira geraccedilatildeo dos computadores surgiram tambeacutem os teclados para digitaccedilatildeo de

comandos Monitores tambeacutem permitiam a visualizaccedilatildeo de sistemas operacionais muito

primitivos ainda completamente distantes dos sistemas graacuteficos que conhecemos e utilizamos

atualmente

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 965

9

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Apesar das facilidades trazidas pelos semicondutores os computadores dessa geraccedilatildeo

natildeo foram reduzidos sendo que um dos modelos de mais sucesso (o IBM 360 que vendeu mais

de 30 mil unidades) chegava a pesar mais do que os antecessores Nessa eacutepoca (final da deacutecada

de 1970 e iniacutecio da deacutecada de 1980) os computadores passaram a ser mais acessiacuteveis

Outro grande avanccedilo da terceira geraccedilatildeo foi a adiccedilatildeo da capacidade de upgrade nas

maacutequinas As empresas poderiam comprar computadores com determinadas configuraccedilotildees e

aumentar as suas capacidades de acordo com a necessidade pagando relativamente pouco por

essas facilidades IBM 360

QUARTA GERACcedilAtildeO DOS COMPUTADORES - (1971 - 1980)

A quarta geraccedilatildeo teve iniacutecio em 1971 quando a Intel lanccedilou o primeiro microprocessador

o Intel 4004 muito mais potente que os circuitos SSI e MSI de ateacute entatildeo e soacute terminou em 1981

com o lanccedilamento dos circuitos ULSI (Circuitos de Escala Ultra Grande) Tem como marco inicial

com os computadores pessoais surgimento do microprocessador a reduccedilatildeo no tamanho dos

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1065

10

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

computadores foi muito grande Surgem muitas linguagens de alto niacutevel e nasce agrave teleinformaacutetica

transmissatildeo de dados entre computadores atraveacutes de rede

Continuou-se o desenvolvimento do Circuito Integrado e a busca de se colocar cada vez

mais um maior nuacutemero de componentes em um chip

A Intel comeccedilou suas pesquisas nessa aacuterea em 1969 Os resultados foram vistos quando

em novembro de 1971 buscando atender ao pedido de uma empresa japonesa que precisava de

um circuito integrado especial a Intel elaborou o 4004 criado por Federico Faggin Ted Hoff

e Stanley Mazor primeiro microprocessador comercial

Internet

De 1969 a 1972 foi criada a Arpanet que deu iniacutecio a Internet (teleinformaacutetica) que conhecemos

hoje A rede entrou no ar em dezembro de 1969 no EUA Eles eram interligados atraveacutes de links

de 50 k criados usando linhas telefocircnicas dedicadas adaptadas para o uso de transmissatildeo de

dados

Em 1971 ocorre a transmissatildeo do primeiro e-mail realizada pela Universidade da Califoacuternia para

um computador na Stanford Research Institute com o texto ldquoLOGINrdquo mas chegou apenas LO

A Ethernet surgiu entre 1972 e 1973 dentro do PARC (o laboratoacuterio de desenvolvimento da Xerox

nos Estados Unidos) onde foi feito o primeiro teste de transmissatildeo de dados usando esse

padratildeo

Em 1974 surgiu o TCPIP que acabou se tornando o protocolo definitivo para uso

na ARPANET e mais tarde na Internet

QUINTA GERACcedilAtildeO DOS COMPUTADORES ndash (1980Atualmente)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1165

11

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Desde o iniacutecio da era dos microcomputadores o avanccedilo tem sido constante O computador

que se fabrica hoje dentro de alguns meses jaacute estaacute obsoleto

Atualmente o que vem surgindo satildeo inuacutemeras renovaccedilotildees com o objetivo de evoluir os sistemas

rdquoEmbora os paradigmas possam mudar as pesquisas normalmente evoluem baseadas em

resultados do passado que se constituem em fundamentos de um desenvolvimento posteriorhelliprdquo

Para Fixar

Escreva um breve resumo sobre o processo evolutivo dos computadores

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________ ___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

__________________________________________________________________

SOFTWARES

O QUE Eacute Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por

um computador com o objetivo de executar tarefas especiacuteficas Em um computador o software eacute

classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer instruccedilotildees para o hardware

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1265

12

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Diferentemente do que muitas pessoas imaginam o computador natildeo faz nada sozinho Ele

apenas processa uma seacuterie de informaccedilotildees inseridas pelo usuaacuterio para entatildeo fornecer os

resultados As informaccedilotildees inseridas e os resultados que recebemos precisam estar num formato

que noacutes humanos conseguimos entender Para facilitar essa comunicaccedilatildeo entre homem e

computador foram criados os softwares ou programas de computador Na realidade tudo que

fazemos com um computador eacute pela execuccedilatildeo desses programas

Um sistema operacional eacute um programa que atua como intermediaacuterio entre o usuaacuterio e o

hardware de um computador O propoacutesito de um sistema operacional eacute propiciar um ambiente no

qual o usuaacuterio possa executar outros programas de forma conveniente por esconder detalhes

internos de funcionamento e eficiecircncia por procurar gerenciar de forma justa os recursos do

sistema

Vimos que o sistema operacional interage diretamente com o hardware e com isso eacuteinfluenciado diretamente pela evoluccedilatildeo do mesmo Portanto a evoluccedilatildeo dos sistemas

operacionais estaacute em grande parte relacionada ao desenvolvimento de equipamentos cada vez

mais velozes compactos e de custos baixos e agrave necessidade de aproveitamento e controle

destes recursos

Assim ao falar sobre o histoacuterico dos sistemas operacionais estaremos recordando um

pouco a evoluccedilatildeo do hardware Devemos lembrar que as datas das fases da evoluccedilatildeo satildeo

aproximadasHISTOacuteRIA

Desde os tempos do computador programado por chaves e cabos ateacute o surgimento do

teclado e impressora de caracteres procurou-se ao longo do processo evolutivo do computador

tornar a sua utilizaccedilatildeo mais amigaacutevel precisa raacutepida e eficaz

Primeira geraccedilatildeo (1945-1955)

Vaacutelvulas e Paineacuteis de Programaccedilatildeo - No iniacutecio da Segunda Guerra Mundial surgiram os primeiros

computadores digitais formados por milhares de vaacutelvulas que ocupavam aacutereas enormes sendo

de funcionamento lento e duvidoso O ENIAC foi o primeiro computador digital de propoacutesito geral

Criado para a realizaccedilatildeo de caacutelculos baliacutesticos A programaccedilatildeo era feita em paineacuteis atraveacutes de

fios utilizando linguagem de maacutequina Natildeo existia o conceito de sistema operacional Outros

computadores foram construiacutedos nessa eacutepoca mas eram utilizados apenas em universidades e

oacutergatildeos militares

SEGUNDA GERACcedilAtildeO (1956-1965)

Transistores e Sistemas em Lote (batch)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1365

13

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

A criaccedilatildeo do transistor e das memoacuterias magneacuteticas contribuiu para o enorme avanccedilo dos

computadores da eacutepoca O transistor permitiu o aumento da velocidade e da confiabilidade do

processamento as memoacuterias magneacuteticas permitiram o acesso mais raacutepido aos dados maior

capacidade de armazenamento e computadores menores

Surgiram os primeiros sistemas operacionais para tentar automatizar as tarefas manuais

ateacute entatildeo realizadas e as primeiras linguagens de programaccedilatildeo como Assembly e Fortran Os

programas deixaram de ser feitos diretamente no hardware o que facilitou enormemente o

processo de desenvolvimento de programas Surgiu o processamento em batch em que um lote

(batch) de programas e de dados era submetido ao computador por vez

Terceira geraccedilatildeo (1966-1980)

Circuitos Integrados e Multiprogramaccedilatildeo

Por meio dos circuitos integrados e posteriormente dos microprocessadores foi possiacutevelviabilizar e difundir o uso de sistemas computacionais por empresas devido agrave diminuiccedilatildeo de seus

custos de aquisiccedilatildeo Houve um aumento no poder de processamento e diminuiccedilatildeo no tamanho

dos equipamentos

A evoluccedilatildeo dos processadores de entradasaiacuteda permitiu que enquanto um programa

esperasse por uma operaccedilatildeo de leituragravaccedilatildeo o processador executasse um outro programa

Para tal a memoacuteria foi dividida em particcedilotildees em que um programa esperava sua vez para ser

processado A essa teacutecnica de compartilhamento da memoacuteria principal e processador deu-se onome de multiprogramaccedilatildeo

QUARTA GERACcedilAtildeO (1981-1990)

Computadores Pessoais

Os mini e superminicomputadores se firmaram no mercado e os microcomputadores

ganharam um grande impulso Surgem as estaccedilotildees de trabalho (workstations) que apesar de

monousuaacuterias permitem que se executem diversas tarefas concorrentemente criando o conceito

de multitarefa

No final dos anos 80 os computadores tiveram um grande avanccedilo decorrente de aplicaccedilotildees que

exigiam um enorme volume de caacutelculos Para acelerar o processamento foram adicionados

outros processadores exigindo dos sistemas operacionais novos mecanismos de controle e

sincronismo Com o multiprocessamento foi possiacutevel a execuccedilatildeo de mais de um programa

simultaneamente ou ateacute de um mesmo programa por mais de um processador Foram

introduzidos processadores vetoriais e teacutecnicas de paralelismo de processamento fazendo com

que os computadores se tornassem ainda mais poderosos

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1465

14

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O uso das redes distribuiacutedas se difundiu por todo o mundo permitindo o acesso a outros

sistemas de computaccedilatildeo independentemente de cidade paiacutes e ateacute mesmo fabricante Os

softwares de rede passaram a estar intimamente relacionados com o sistema operacional de cada

maacutequina e surgem os sistemas operacionais de rede

QUINTA GERACcedilAtildeO (1991ATUALMENTE)

Houve grandes avanccedilos em termos de hardware software e telecomunicaccedilotildees como

consequecircncia da evoluccedilatildeo das aplicaccedilotildees que necessitavam cada vez mais de capacidade de

processamento e armazenamento de dados Sistemas especialistas sistemas multimiacutedia bancos

de dados distribuiacutedos inteligecircncia artificial e redes neurais satildeo apenas alguns exemplos da

necessidade cada vez maior de informaccedilatildeo e de capacidade de processamento O conceito de

processamento distribuiacutedo eacute explorado nos sistemas operacionais de forma que suas funccedilotildees

estejam espalhadas por vaacuterios processadores atraveacutes de redes de computadores A deacutecada de 90 foi definitiva para a consolidaccedilatildeo dos sistemas operacionais baseados em

interfaces graacuteficas

Atualmente temos as plataformas multicore (vaacuterios nuacutecleos) disponiacuteveis em computadores

pessoais e ateacute notebooks possibilitando cada vez mais a paralelizaccedilatildeo de aplicaccedilotildees e elevando

em muito o tempo de execuccedilatildeo dos programas Os fanaacuteticos pelos jogos de computador que o

digam

Os sistemas operacionais - satildeo parte fundamental dos computadores satildeo responsaacuteveis pororganizar os processos (programas) que estatildeo sendo executados pelo processador criando uma

fila de processos que garante que todos receberatildeo sua parcela de processamento

Para Fixar

Escreva um breve resumo sobre o processo evolutivo dos Softwares

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________ __________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1565

15

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

PRINCIacutePAIS SISTEMAS OPERACIONAIS

Principais SO que deram iniacutecio a era Windows MCs Linux e Unix

1987 ndash Andrew Tanenbaum um professor de computaccedilatildeo holandecircs desenvolve um sistema

operacional didaacutetico simplificado mas respeitando a API do UNIX que foi batizado como Minix

1987 ndash IBM e Microsoft apresentam a primeira versatildeo do OS2 um sistema multitarefa destinado

a substituir o MS-DOS e o Windows Mais tarde as duas empresas rompem a parceria a IBM

continua no OS2 e a Microsoft investe no ambiente Windows

1991 ndash Linus Torvalds um estudante de graduaccedilatildeo Finlandecircs inicia o desenvolvimento do Linux

lanccedilando na rede Usenet o nuacutecleo 001 logo abraccedilado por centenas de programadores ao redor

do mundo

1993 ndash a Microsoft lanccedila o Windows NT o primeiro sistema 32 bits da empresa

Capiacutetulo 2 ndash Banco de Dados

Banco de dados eacute um arquivo especial que armazena dados arrumados sob forma de

tabelas ou matrizes (em linhas e colunas) Quando um conjunto de informaccedilotildees possui muitasvariaacuteveis interligadas entre si eacute aconselhaacutevel que sejam armazenadas e trabalhadas em um

banco de dados Os bancos de dados fornecem uma seacuterie de funcionalidades que natildeo satildeo

encontradas em arquivos comuns ldquoBancos de dados satildeo coleccedilotildees de informaccedilotildees que se

relacionam de forma que crie um sentidordquo Satildeo de vital importacircncia para empresas e haacute duas

deacutecadas se tornaram a principal peccedila dos sistemas de informaccedilatildeo ldquoFonte Wikipeacutediardquo

Entatildeo um banco de dados eacute uma entidade na qual eacute possiacutevel armazenar dados de maneira

estruturada e com a menor redundacircncia possiacutevel Estes dados devem poder ser utilizadas porprogramas por usuaacuterios diferentes Assim a noccedilatildeo baacutesica de dados eacute acoplada geralmente a

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1665

16

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

uma rede a fim de poder pocircr conjuntamente estas informaccedilotildees daiacute o nome banco Fala-se

geralmente de sistema de informaccedilatildeo para designar toda a estrutura que reuacutene os meios

organizados para poder compartilhar dados

DADOS amp INFORMACcedilOtildeES

Muitos consideram dados e informaccedilotildees como palavras sinocircnimas mas na verdade natildeo satildeo

Para entender o que eacute um banco de dados eacute muito importante saber a diferenccedila entre essas duas

palavras

Dados satildeo fatos brutos em sua forma primaacuteria E muitas vezes os dados podem natildeo fazer

sentido sozinhos

Informaccedilotildees consistem no agrupamento de dados de forma organizada para fazer sentido

gerar conhecimento

Por exemplo o nuacutemero 2001 isoladamente faz algum sentido Natildeo Isso eacute um dado E se eu

dissesse ldquoAno do atentado terrorista agraves torres gecircmeas 2001Prime Agora faz sentido Isso eacute

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1765

17

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

uma informaccedilatildeo Um banco de dados eacute uma estrutura de dados organizada que permite a

extraccedilatildeo de informaccedilotildees

Metadados ndash Eacute todo dado relativo a outro dado eacute chamado de metadados No exemplo anterior

do ano 2001 o dado ldquoAno do atentado terrorista agraves torres gecircmeasrdquo eacute um metadado pois ele eacute um

dado sobre o dado ldquo2001rdquo Outro exemplo mais comum em banco de dados o campo telefone da

tabela cliente tem entre outros os seguinte metadados nome (telefone) tipo (texto) tamanho (30

caracteres) obrigatoriedade (natildeo) etc

Um banco de dados eacute formado por dado e metadados Sem os metadados natildeo seria

possiacutevel organizar e extrair informaccedilotildees de um banco de dados

Para Fixar

Dados - Em informaacutetica designa-se por dados os elementos de partida que servem de base

para o tratamento e sobre os quais o computador efetua as operaccedilotildees necessaacuterias agrave tarefa emquestatildeo

Os dados satildeo uma representaccedilatildeo dos fatos conceitos ou instruccedilotildees de uma maneira

normalizada que se adapte agrave comunicaccedilatildeo interpretaccedilatildeo e processamento pelo ser humano ou

atraveacutes de maacutequinas automaacuteticas

Os dados satildeo representados por siacutembolos como por exemplo as letras do alfabeto a b c

etc mas natildeo satildeo em si a informaccedilatildeo desejada

ExemploO I O C O M B - satildeo dados mas natildeo eacute informaccedilatildeo perceptiacutevel ao homem

A informaccedilatildeo natildeo eacute mais do que dados organizados e ordenados de forma uacutetil Isto eacute informaccedilatildeo

eacute o conhecimento produzido como resultado do processamento de dados

Se processarmos os dados que tiacutenhamos anteriormente entatildeo obtemos a informaccedilatildeo

O I O C O M B - Dados

- Processamento

C O M B O I O ndash Informaccedilatildeo

Para fixar

Escreva o significado de

Dados___________________________________________________________________

_________________________________________________________________________

Informaccedilatildeo_______________________________________________________________

_________________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1865

18

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Metadados_______________________________________________________________

_________________________________________________________________________

Banco de

dados___________________________________________________________________

_________________________________________________________________________

A histoacuteria dos bancos de dados

Hoje os bancos de dados satildeo essenciais para muitas empresas e estatildeo no coraccedilatildeo de

muitos sistemas computacionais Ter acesso raacutepido agraves informaccedilotildees eacute muito importante para a

correta tomada de decisotildees em um negoacutecio Se vocecirc pretende trabalhar com desenvolvimento de

softwares com certeza precisaraacute trabalhar com bancos de dados em algum momento Conhecer

a histoacuteria dos bancos de dados e como eles evoluiacuteram eacute muito importante para entender como os

bancos de dados mais comuns satildeo organizados Entatildeo como aconteceu a evoluccedilatildeo dos bancos

de dados

Antigamente as empresas armazenavam dados em fichas de papel que eram organizadas

em arquivos fiacutesicos atraveacutes de pastas Extrair informaccedilotildees e manter esses arquivos organizados

era uma tarefa muito custosa Aleacutem disso o acesso agrave informaccedilatildeo dependia da localizaccedilatildeo

geograacutefica dos arquivos Enfim esses arquivos fiacutesicos evoluiacuteram para arquivos digitais No iniacutecio

cada entidade (clientes funcionaacuterios produtos etc) era um arquivo de dados que eram

acompanhados de um ldquosoftware simplesrdquo para manipular os dados do arquivo esses softwares

permitiam realizar operaccedilotildees de cadastro alteraccedilatildeo exclusatildeo e consulta nos arquivos digitais De

fato melhorou bastante principalmente a tarefa de consulta de informaccedilotildees poreacutem os arquivos

digitais eram ainda uma versatildeo melhorada dos arquivos fiacutesicos

Mas as entidades precisavam relacionar-se por exemplo um produto eacute fornecido por

um fornecedor e com os arquivos digitais relacionaacute-las natildeo era uma tarefa muito trivial os

ldquosoftwares simplesrdquo para manipular os arquivos digitais comeccedilaram a ficar ldquocomplexosrdquo para

permitir os relacionamentos entre entidades Entatildeo na deacutecada de 60 a empresa IBM investiu

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1965

19

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

fortemente em pesquisas para solucionar estes problemas dos bancos de dados digitais

primitivos Vaacuterios modelos de bancos de dados surgiram nesta eacutepoca dentre eles os modelos

hieraacuterquicos e rede

Em junho de 1970 o pesquisador Edgar Frank ldquoTedrdquo Codd da IBM mudou a histoacuteria dos

bancos de dados apresentando o modelo relacional no artigo intitulado ldquoA Relational Model of

Data for Large Shared Data Banksrdquo (Um modelo relacional de dados para grandes bancos de

dados compartilhados) onde o autor apresentou uma forma de usuaacuterios sem conhecimento

teacutecnico armazenarem e extraiacuterem grandes quantidades de informaccedilotildees de um banco de dados

Esse artigo foi o grande impulso para a evoluccedilatildeo dos bancos de dados a partir do artigo de ldquoTedrdquo

Codd que os cientistas aprofundaram a ideia de criar o modelo de banco de dados relacional

BANCO DE DADOS RELACIONAL

Apesar de ter sido o marco dos bancos de dados relacionais o artigo de Codd natildeo foimuito explorado no iniacutecio Soacute no final da deacutecada de 70 que foi desenvolvido um sistema baseado

nas ideias do cientista o ldquoSistema Rrdquo Junto com esse sistema foi criado a linguagem de consulta

estruturada (SQL ndash Structured Query Language) que se tornou a linguagem padratildeo para bancos

de dados relacionais Embora tenha contribuiacutedo para a evoluccedilatildeo dos bancos de dados

relacionais o ldquoSystem Rrdquo natildeo foi muito bem sucedido comercialmente mas os sistemas de banco

de dados seguintes foram baseados nele

Nos anos 80 surgiram outros bancos de dados a Oracle apresentou o Oracle 2 e a IBMo SQLDS (que se tornou DB2) ambos sistemas comerciais de bancos de dados Na sequencia

vieram SQL Server MySQL DBase III Paradox etchellip

BANCOS DE DADOS HOJE

Atualmente existem vaacuterios modelos de bancos de dados tais como orientado a objetos

orientado a documentos etc Mas o mais comum ainda eacute o banco de dados relacional A decisatildeo

entre qual modelo de banco de dados utilizarem baseia-se no tipo de dados que vocecirc pretende

armazenar Por exemplo se vocecirc for armazenar uma grande quantidade de dados em um modelo

pequeno (imagine um banco de dados para o twitter) eacute mais indicado utilizar um banco de dados

orientado a documentos a um banco de dados relacional Muitas questotildees envolvem essa

decisatildeo mas natildeo eacute uma questatildeo de superioridade entre uma ou outra tecnologia todas tecircm proacutes

e contras e satildeo mais indicadas ou natildeo para cada problema

Para fixar

Faccedila um breve resumo sobre o surgimos dos bancos de dados

______________________________________________________________________________

______________________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2065

20

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

Dados amp Informaccedilatildeo

A informaccedilatildeo eacute encarada atualmente como um dos recursos mais importantes de uma

organizaccedilatildeo contribuindo decisivamente para a sua maior ou menor competitividade De fato

com o aumento da concorrecircncia tornou-se vital melhorar as capacidades de decisatildeo a todos osniacuteveis

Hoje mais que nunca a tomada de decisatildeo nas organizaccedilotildees eacute um processo complexo

dada a qualidade de informaccedilatildeo em jogo a sua complexidade e a frequecircncia com que se altera

No entanto para que possa ser utilizada com um apoio eficaz agrave tomada de decisatildeo a informaccedilatildeo

soacute tecircm valor se verificarem simultaneamente algumas condiccedilotildees

ATUALIDADE ndash O valor da informaccedilatildeo dependeraacute em grande parte da sua atualidade

Dado o dinamismo verificado em todos os setores da sociedade em geral e do ambiente

empresarial em particular o periacuteodo de validade da informaccedilatildeo eacute cada vez mais curto Torna-se

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2165

21

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

necessaacuterio dispor de fontes de informaccedilatildeo que acompanhem continuamente essas modificaccedilotildees

Soacute com base em informaccedilatildeo atualizada se podem tomar decisotildees acertadas

CORRECcedilAtildeO ndash Natildeo basta que a informaccedilatildeo seja atual eacute tambeacutem necessaacuterio que na

medida do possiacutevel seja rigorosa Soacute com informaccedilatildeo correta se pode decidir com confianccedila

RELEVAcircNCIA ndash Dado o grande de volume de informaccedilatildeo envolvida o processo de tomada

de decisatildeo ao contraacuterio de ser facilitado pode ser dificultado pelo excesso de informaccedilatildeo A

informaccedilatildeo deve ser devidamente filtrada de tal forma que apenas aquela com relevacircncia para

cada situaccedilatildeo seja considerada

DISPONIBILIDADE ndash Ainda que a informaccedilatildeo verifique os trecircs requisitos anteriores a sua

utilidades poderaacute ser posta em causa se natildeo puder ser disponibilizada de forma imediata no

momento em que eacute solicitada As decisotildees muito ponderadas com o longo periacuteodo de gestaccedilatildeo

satildeo cada vez mais situaccedilotildees do passado Hoje dadas as caracteriacutesticas do meio envolvente oprocesso de tomada de decisatildeo tem que ser quase instantacircneo Para isso a informaccedilatildeo tem que

ser disponibilizada rapidamente caso contraacuterio deixa de ser uacutetil

LEGIBILIDADE - Esta condiccedilatildeo apesar de apresentada em uacuteltimo lugar natildeo eacute por isso

menos importante A informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada

De fato de nada vale que a informaccedilatildeo seja atual precisa relevante e disponibilizada em

tempo oportuno se natildeo puder ser entendida A forma como eacute disponibilizada tem tambeacutem grande

importacircncia informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada A forma como eacutedisponibilizada tem tambeacutem grande importacircncia

Quanto aos requisitos de atualidade e correccedilatildeo da informaccedilatildeo para que esta possa ser

correta e atual os dados de onde eacute derivada tecircm forccedilosamente que ser precisos e atualizados

Quanto aos requisitos de relevacircncia disponibilidade e legibilidade da informaccedilatildeo estes tecircm mais

a ver com os meios utilizados para o processamento dos dados

Como eacute que a informaccedilatildeo eacute organizada

A organizaccedilatildeo da informaccedilatildeo eacute efetuada de acordo com criteacuterios distintos como

Hierarquia dos seus componentes

O tipo de assunto a que se refere

Forma de armazenamento

Quanto agrave HIERARQUIA DOS COMPONENTES DA INFORMACcedilAtildeO esta eacute organizada em

Caracteres Campos Registros Ficheiros Caracteres - podem ser numeacutericos alfabeacuteticos ou

sinais de pontuaccedilatildeo Campos - satildeo conjuntos de caracteres que identificam um componente de

um registo Registos - satildeo agrupamentos de campos descritivos de uma realidade Ficheiros - satildeo

conjuntos de registos cuja informaccedilatildeo eacute estruturalmente analoacutegica

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2265

22

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Quanto AO TIPO DE ASSUNTO a que se refere agrave informaccedilatildeo

Esta pode ser como que etiquetada de modo a tornar faacutecil a sua procura e a evitar perdas

de tempo

Quando a informaccedilatildeo estaacute armazenada em ficheiros estes indicam o seu tipo atraveacutes de

uma extensatildeo ao nome do ficheiro

Algumas das extensotildees mais comuns satildeo

- COM ficheiro de comandos - BACK backup ou coacutepias de seguranccedila- EXE executaacuteveis - SYS ficheiros de sistema

- BAT processamento batch - XLS folha de caacutelculo provenientes do Excel

- TXT texto no formato ASCII - PPT apresentaccedilotildees provenientes do PowerPoint

- PAS programas em Linguagem Pascal - MBD base de dados provenientes do Access

- C programas em Linguagem C - DOC documentos provenientes de um processador de

texto

Quanto Agrave FORMA DE ARMAZENAMENTO da informaccedilatildeoRelativamente ao armazenamento por exemplo no disco riacutegido do computador a

informaccedilatildeo eacute organizada em diretorias cujo nome revela o tipo de ficheiros que aiacute se encontram

podendo cada diretorias conter diversas subdiretorias

Organizaccedilatildeo dos dados num Computador

Os dados que fornecemos a um computador para processar podem ser de trecircs tipos

quantitativos classificativos referenciais

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2365

23

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Dados quantitativos - satildeo os que exprimem quantidades e por isso normalmente servem

de base para caacutelculos aritmeacuteticos Exemplo a ficha escolar as notas do periacuteodo as faltas o total

das faltas

bull Dados classificativos - satildeo os que descrevem ou especificam os elementos envolvidos e

quantificados Normalmente servem de complemento aos dados quantitativos identificando

pessoas objetos situaccedilotildees etc Natildeo servem portanto para elementos de caacutelculo Exemplo a

ficha escolar o nome do aluno o nome da disciplina o nome do professor

bull Dados referenciais - satildeo dados que permitem controlar e referenciar os elementos

tratados Exemplo a ficha escolar o ano letivo o nuacutemero do aluno a turma

Para fixar

Escreva de forma resumida como podemos organizar os dados

_________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

Tipos de Operaccedilotildees realizadas sobre os dados

O tipo de operaccedilotildees efetuadas depende dos objetivos do processamento e igualmente dostipos de dados nele envolvidos pois o computador pode processar dados numeacutericos ou natildeo

numeacutericos Assim temos como operaccedilotildees possiacuteveis num processamento

bull Operaccedilotildees aritmeacuteticas - satildeo efetuadas apenas sobre dados numeacutericos e satildeo

basicamente constituiacutedas por somas subtraccedilotildees multiplicaccedilotildees divisotildees e outras similares

bull Operaccedilotildees loacutegicas - satildeo efetuadas sobre dados numeacutericos ou natildeo numeacutericos Estas

operaccedilotildees satildeo tambeacutem por vezes designadas por operaccedilotildees de comparaccedilatildeo

bull Operaccedilotildees de movimentaccedilatildeo interna - satildeo efetuadas sobre qualquer tipo de dados e

consistem na coacutepia e mudanccedila de localizaccedilatildeo interna dos dados na memoacuteria do computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2465

24

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Operaccedilatildeo de InputOutput - satildeo as operaccedilotildees que envolvem os oacutergatildeos de entrada e

saiacuteda permitindo a comunicaccedilatildeo entre o operador e a maacutequina

Funccedilotildees do processamento de dados

Considera-se como processamento de dados o conjunto de todas as operaccedilotildees efetuadas desde

a entrada dos dados ateacute agrave saiacuteda da informaccedilatildeo Todas estas operaccedilotildees de vaacuterios tipos satildeo

normalmente associadas a seis funccedilotildees do processamento de dados input ordenaccedilatildeo

processamento armazenamento output e controle

bull Input - fase de seleccedilatildeo e aquisiccedilatildeo dos dados pelo computador

bull Ordenaccedilatildeo - esta eacute uma funccedilatildeo auxiliar O seu objetivo eacute dispor os dados de uma forma

organizada (ordenada) de modo a facilitar o seu tratamento Se os dados se mantiverem

ordenados segundo um determinado criteacuterio preacute-definido a sua pesquisa eacute mais faacutecil o que faz

aumentar a velocidade do processamento

bull Processamento - considera-se processamento ao conjunto de todas as operaccedilotildees

efetuadas internamente pelo computador na manipulaccedilatildeo dos dados

bull Armazenamento - esta eacute uma funccedilatildeo muito importante que permite posteriormente

analisar as etapas e os resultados do processamento

bull Output - eacute a obtenccedilatildeo de resultados sob a forma de informaccedilatildeo significativa para as

pessoas a quem se destina

bull Controle - a sua finalidade eacute detectar corrigir e eliminar possiacuteveis erros ou afastamentosem relaccedilatildeo aos objetivos inicialmente traccedilados

Utilidade de um banco de dados

Um banco de dados permite pocircr dados agrave disposiccedilatildeo de usuaacuterios para uma consulta uma

introduccedilatildeo ou uma atualizaccedilatildeo assegurando-se dos direitos atribuiacutedos a estes uacuteltimos Isso eacute

ainda mais uacutetil quando os dados informaacuteticos satildeo cada vez mais numerosos

Um banco de dados pode ser local quer dizer utilizaacutevel em uma maacutequina por um usuaacuterio

ou repartida quer dizer que as informaccedilotildees satildeo armazenadas em maacutequinas distantes eacessiacuteveis por rede A vantagem essencial da utilizaccedilatildeo dos bancos de dados eacute a possibilidade

de poder ser acessada por vaacuterios usuaacuterios simultaneamente

A gestatildeo dos bancos de dados

A fim de poder controlar os dados bem como os usuaacuterios a necessidade de um sistema de

gestatildeo fez-se sentir rapidamente A gestatildeo do banco de dados faz-se graccedilas a um sistema

chamado SGBD (sistema de gestatildeo de bancos de dados) ou em inglecircs DBMS (Database

managment system) O SGBD eacute um conjunto de serviccedilos (aplicaccedilotildees software) que permitem

gerenciar os bancos de dados quer dizer

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2565

25

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Permitir o acesso aos dados de maneira simples

Autorizar um acesso agraves informaccedilotildees a muacuteltiplos usuaacuterios

Manipular os dados presentes no banco de dados (inserccedilatildeo supressatildeo modificaccedilatildeo)

O SGBD pode decompor-se em trecircs subsistemas

O sistema de gestatildeo de arquivos permite o armazenamento das informaccedilotildees num suporte

fiacutesico

O SGBD interno gerencia a emissatildeo das informaccedilotildees

O SGBD externo representa a interface com o usuaacuterio

Bancos de dados satildeo conjuntos de dados com uma estrutura regular que organizam

informaccedilatildeo Um banco de dados normalmente agrupa informaccedilotildees utilizadas para um mesmo fim

O modelo de dados mais adotado hoje em dia eacute o modelo relacional onde as estruturas

tecircm a forma de tabelas compostas por linhas e colunas

Resumindo um banco de dados eacute uma coleccedilatildeo de dados relacionados Entende-se por

dado toda a informaccedilatildeo que pode ser armazenada e que apresenta algum significado impliacutecito

dentro do contexto ao qual ele se aplica Por exemplo num sistema bancaacuterio uma pessoa eacuteidentificada pelo seu cpf(cliente) Em um sistema escolar a pessoa eacute identificada pelo seu nuacutemero

de matriacutecula(aluno) Aleacutem disso os dados que seratildeo armazenados em cada situaccedilatildeo podem

diferir consideravelmente

Atividades

1) Onde utilizar um banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2665

26

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2) Como funciona um sistema gerenciador de banco de dados

3) Como funciona o modelo relacional

Modelo Relacional

O modelo relacional eacute uma teoria matemaacutetica desenvolvida por Edgar Frank Codd para

descrever como as bases de dados devem funcionar Embora esta teoria seja a base para o

software de bases de dados relacionais muito poucos sistemas de gestatildeo de bases de dados

seguem o modelo de forma restrita e todos tecircm funcionalidades que violam a teoria desta forma

variando a complexidade e o poder A discussatildeo se esses bancos de dados merecem ser

chamados de relacional ficou esgotada com tempo com a evoluccedilatildeo dos bancos existentes

De acordo com a arquitetura ANSI SPARC em trecircs niacuteveis os Bancos de dados

relacionais consistem de trecircs componentes

bull uma coleccedilatildeo de estruturas de dados formalmente chamadas de relaccedilotildees ou

informalmente tabelas compondo o niacutevel conceitual

bull uma coleccedilatildeo dos operadores a aacutelgebra e o caacutelculo relacionais que constituem a base da

linguagem SQL

bull uma coleccedilatildeo de restriccedilotildees da integridade definindo o conjunto consistente de estados de

base de dados e de alteraccedilotildees de estados As restriccedilotildees de integridade podem ser de quatro

tipos

bull domiacutenio (ou tipo de dados) bull atributo

bull restriccedilotildees de base de dados

De acordo com o Princiacutepio de Informaccedilatildeo toda informaccedilatildeo tem de ser representada como dados

qualquer tipo de atributo representa relaccedilotildees entre conjuntos de dados

Nos bancos de dados relacionais os relacionamentos entre as tabelas natildeo satildeo codificados

explicitamente na sua definiccedilatildeo Em vez disso se fazem implicitamente pela presenccedila de

atributos chave As bases de dados relacionais permitem aos utilizadores (incluindo

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2765

27

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

programadores) escreverem consultas (queries) reorganizando e utilizando os dados de forma

flexiacutevel e natildeo necessariamente antecipada pelos projetistas originais

Esta flexibilidade eacute especialmente importante em bases de dados que podem ser utilizadas

durante deacutecadas tornando as bases de dados relacionais muito populares no meio comercial

Um dos pontos fortes do modelo relacional de banco de dados eacute a possibilidade de

definiccedilatildeo de um conjunto de restriccedilotildees de integridade Estas definem os conjuntos de estados e

mudanccedilas de estado consistentes do banco de dados determinando os valores que podem e os

que natildeo podem ser armazenados

Aplicaccedilotildees de bancos de dados

Bancos de dados satildeo usados em muitas aplicaccedilotildees enquanto atravessando virtualmente a

gama inteira de software de computador Bancos de dados eacute o meacutetodo preferido de

armazenamento para aplicaccedilotildees multiusuaacuterias grandes onde a coordenaccedilatildeo entre muitosusuaacuterios eacute necessaacuteria Ateacute mesmo usuaacuterios individuais os acham convenientes entretanto e

muitos programas de correio eletrocircnico e os organizadores pessoais estatildeo baseados em

tecnologia de banco de dados standard

Aplicativo de Banco de Dados

Um aplicativo de banco de dados eacute um tipo de software exclusivo para gerenciar um banco

de dados Aplicativos de banco de dados abrangem uma vasta variedade de necessidades e

objetivos de pequenas ferramentas como uma agenda ateacute complexos sistemas empresariaispara desempenhar tarefas como a contabilidade

O termo Aplicativo de Banco de dados usualmente se refere a softwares que oferecem

uma interface para o banco de dados Exemplos de aplicativos de banco de dados satildeo Microsoft

Visual FoxPro Microsoft Access dBASE FileMaker (em certa medida) HyperCard MySQL

PostgreSQL Microsoft SQL Server e Oracle

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2865

28

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Capiacutetulo 3 - HARDWARE E SOFTWARE

O QUE Eacute O HARDWARE

No acircmbito da informaacutetica eacute dada a designaccedilatildeo de hardware a todos os componentes

fiacutesicos que fazem parte de um sistema informaacutetico incluiacutedo toda a parte fiacutesica de um computador

(nomeadamente os processadores motherbord disco riacutegido placas de som placas de viacutedeo

memoacuterias etc) e todos os perifeacutericos (tais como teclados mouse monitores impressoras

scanners modems entre outros)

Peccedilas de um computador

Se vocecirc usa um computador desktop jaacute deve saber que natildeo existe uma parte uacutenica

chamada computador Um computador eacute na verdade um sistema de muitas partes funcionando

em conjunto As partes fiacutesicas que vocecirc pode ver e tocar satildeo denominadas

coletivamente hardware (O software por outro lado se refere agraves instruccedilotildees ou programas que

dizem ao hardware o que fazer)

A ilustraccedilatildeo a seguir mostra os dispositivos de hardware mais comuns em um sistema de

computador desktop Seu sistema pode ter uma aparecircncia um pouco diferente mas

provavelmente possui a maioria destas peccedilas Um computador laptop possui peccedilas semelhantes

mas as combina em um uacutenico pacote do tamanho de um caderno

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2965

29

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Sistema de computador desktop

Unidade de sistema

A unidade de sistema (Gabinete) eacute o nuacutecleo de um sistema de computador Normalmente

eacute uma caixa retangular colocada sobre a mesa ou embaixo dela Dentro dessa caixa estatildeo os

componentes eletrocircnicos que processam as informaccedilotildees O mais importante desses

componentes eacute a CPU (unidade de processamento central) ou microprocessador que atua como

o ceacuterebro do computador Outro componente eacute a memoacuteria RAM que armazena

temporariamente informaccedilotildees utilizadas pela CPU enquanto o computador estaacute ligado As

informaccedilotildees gravadas na RAM satildeo apagadas quando o computador eacute desligado

Quase todas as outras partes do computador se conectam agrave unidade de sistema por meio

de cabos Os cabos satildeo conectados aportas (aberturas) especiacuteficas geralmente na parte traseira

da unidade de sistema O hardware que natildeo faz parte da unidade de sistema eacute

chamado dispositivo perifeacuterico ou simplesmente dispositivo

Unidade de sistema

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3065

30

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Armazenamento

O computador possui uma ou mais unidades de disco ou seja dispositivos que armazenam

informaccedilotildees em um disco de plaacutestico ou de metal O disco preserva as informaccedilotildees mesmo

quando o computador estaacute desligado

Unidade de disco riacutegido

A unidade de disco riacutegido do computador armazena informaccedilotildees em um disco riacutegido que eacute um

prato riacutegido ou pilha de pratos com uma superfiacutecie magneacutetica Como os discos riacutegidos podem

reter uma grande quantidade de informaccedilotildees normalmente eles funcionam como principal meio

de armazenamento do computador guardando praticamente todos os programas e arquivos Em

geral a unidade de disco riacutegido fica localizada dentro da unidade de sistema

Unidade de disco riacutegidoUnidades de CD e DVD

Hoje em dia quase todos os computadores vecircm equipados com uma unidade de CD ou DVD

geralmente localizada na frente da unidade de sistema As unidades de CD usam lasers para ler

(recuperar) dados de um CD Muitas delas tambeacutem podem gravar dados em CDs Se vocecirc tiver

uma unidade de disco gravaacutevel poderaacute armazenar coacutepias de seus arquivos em CDs vazios A

unidade de CD tambeacutem serve para tocar CDs de muacutesica no computador

CD

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3165

31

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

As unidades de DVD fazem o mesmo que as unidades de CD e tambeacutem lecircem DVDs Se vocecirc

tiver uma unidade de DVD poderaacute ver filmes no computador Muitas unidades de DVD podem

gravar dados em DVDs vazios

Dica

Se vocecirc tiver uma unidade de CD ou DVD gravaacutevel faccedila backup (copie) periodicamente de seus

arquivos importantes em CDs ou DVDs Dessa forma caso venha a ocorrer alguma falha no disco

riacutegido vocecirc natildeo perderaacute os dados

Unidade de disquete

As unidades de disquete armazenam informaccedilotildees em discos tambeacutem chamados discos

flexiacuteveis ou disquetes Comparado a CDs e DVDs os disquetes podem armazenar apenas uma

pequena quantidade de dados Eles tambeacutem recuperam informaccedilotildees de forma mais lenta e satildeo

mais vulneraacuteveis a danos Por esses motivos as unidades de disquete satildeo cada vez menosusadas embora ainda sejam incluiacutedas em alguns computadores

Disquete

Por que estes discos satildeo chamados de disquetes Apesar de a parte externa ser composta de

plaacutestico riacutegido isso eacute apenas a capa O interior do disco eacute feito de um material de vinil fino e

flexiacutevel

Mouse

Mouse eacute um pequeno dispositivo usado para apontar e selecionar itens na tela do computador

Embora existam mouses de vaacuterias formas o modelo mais comum se assemelha a um rato (como

diz o nome em inglecircs) Ele eacute pequeno e alongado sendo conectado agrave unidade de sistema por um

cabo comprido que faz lembrar uma cauda Alguns mouses mais novos satildeo sem fio

Mouse

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3265

32

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O mouse geralmente possui dois bototildees um botatildeo principal (normalmente o da esquerda) e um

botatildeo secundaacuterio Muitos mouses tambeacutem tecircm uma roda entre os dois bototildees que permite

percorrer as telas de informaccedilotildees

Ponteiros do mouse

Agrave medida que vocecirc move o mouse com a matildeo um ponteiro na tela se move na mesma direccedilatildeo

(A aparecircncia do ponteiro pode mudar dependendo da sua posiccedilatildeo na tela) Quando quiser

selecionar um item aponte para ele e clique no botatildeo principal ou seja pressione-o e solte-o

Apontar e clicar com o mouse eacute a principal maneira de interagir com o computador Para mais

informaccedilotildees consulte Usando o mouse

Teclado

A finalidade principal do teclado eacute digitar texto no computador Ele possui teclas para letras e

nuacutemeros exatamente como em uma maacutequina de escrever A diferenccedila estaacute nas teclas especiais

As teclas de funccedilatildeo localizadas na linha superior executam funccedilotildees diferentes dependendo

de onde satildeo usadas

O teclado numeacuterico localizado agrave direita na maioria dos teclados permite inserir nuacutemeros

rapidamente

As teclas de navegaccedilatildeo como as teclas de seta permitem mover sua posiccedilatildeo dentro de

documentos ou paacuteginas da Web

Teclado

Vocecirc tambeacutem pode usar o teclado para executar muitas das mesmas tarefas que executa com

um mouse Para mais informaccedilotildees consulte Usando o teclado

Monitor

O monitor exibe informaccedilotildees em forma visual usando texto e elementos graacuteficos A parte do

monitor que exibe as informaccedilotildees eacute chamada tela Como a tela de uma televisatildeo a tela de um

computador pode mostrar imagens paradas ou em movimento

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3365

33

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Existem dois tipos baacutesicos de monitores CRT (tubo de raios catoacutedicos) e LCD (viacutedeo de cristal

liacutequido) Ambos produzem imagens niacutetidas mas os monitores LCD levam vantagem por serem

mais finos e mais leves

Monitor LCD (agrave esquerda) monitor CRT (agrave direita)

Impressora

Uma impressora transfere dados de um computador para o papel Vocecirc natildeo precisa de

impressora para usar o computador mas se tiver uma poderaacute imprimir emails cartotildees convites

anuacutencios e outros materiais Muitas pessoas tambeacutem preferem imprimir suas fotos em casa

Os dois principais tipos de impressora satildeo a jato de tinta e a laser As impressoras a jato de tinta

satildeo as mais populares para uso domeacutestico Elas podem imprimir em preto e branco ou em cores

e produzem fotos de alta qualidade quando usadas com papel especial As impressoras a laser

satildeo mais raacutepidas e mais adequadas para uso intenso

Impressora a jato de tinta (agrave esquerda) impressora a laser (agrave direita)

Alto-falantes

Os alto-falantes satildeo usados para tocar som Eles podem vir embutidos na unidade de sistema ou

ser conectados com cabos Satildeo eles que permitem ouvir muacutesica e efeitos de som no computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3465

34

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Alto-falantes do computador

Modem

Para conectar o computador agrave Internet vocecirc precisa de um modem um dispositivo que envia e

recebe informaccedilotildees do computador por linha telefocircnica ou cabo de alta velocidade Agraves vezes os

modems vecircm embutidos na unidade de sistema mas os de alta velocidade normalmente satildeo

componentes separados

Modem a cabo

O QUE Eacute O SOFTWARE

O Software eacute uma aplicaccedilatildeo ou programa do computador escrita numa determinadalinguagem interpretaacutevel por uma determinada maacutequina (o processador de um computador ou

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3565

35

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

outro equipamento) e que permite executar determinadas tarefas para as quais o software foi

projetado Estes programas satildeo compostos por uma sequecircncia de instruccedilotildees (os comandos) e de

declaraccedilotildees de dados as quais satildeo armazenaacuteveis num meio digital

Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por um

computador com o objetivo de executar tarefas especiacuteficas Tambeacutem pode ser definido como

os programas que comandam o funcionamento de um computador

Em um computador o software eacute classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer

instruccedilotildees para o hardware O hardware eacute toda a parte fiacutesica que constitui o computador por

exemplo a CPU a memoacuteria e os dispositivos de entrada e saiacuteda O software eacute constituiacutedo por

todos os programas que existem para um referido sistema quer sejam produzidos pelo proacuteprio

utente ou pelo fabricante do computador

O termo inglecircs software foi usado pela primeira vez em 1958 em um artigo escrito pelo cientistaamericano John Wilder Tukey Foi tambeacutem ele o responsaacutevel por introduzir o termo bit para

designar diacutegito binaacuterio

Os softwares podem ser classificados como

SOFTWARE DE SISTEMA

Geralmente dividido em SISTEMAS OPERACIONAIS e PROGRAMAS UTILITAacuteRIOS Para

comeccedilar os Sist Operacionais satildeo de grande importacircncia pois eles nos datildeo a opccedilatildeo de dizer ao

computador o que ele deve fazer Dois exemplos bastante conhecidos do nosso puacuteblico satildeoo Mac o Windows e o Linux Os Programas utilitaacuterios geralmente satildeo softwares de menor porte

com funccedilotildees mais especificas tipo Verificaccedilatildeo de Disco Coacutepias de Seguranccedila entre outros

SOFTWARE APLICATIVO

Neste tipo de software se enquadram todos aqueles programas que satildeo utilizados na execuccedilatildeo

de tarefas especiacuteficas Posso citar vaacuterios exemplos mas os mais comuns satildeo os processadores

de texto como o Word que servem para trabalhar com os mais diversos tipos de textos emitir

etiquetas e fazer formulaacuterios as planilhas eletrocircnicas como o Excel satildeo poderosas ferramentas

de caacutelculos que facilitam tanto aquele trabalho aacuterduo de matemaacutetica fazer graacuteficos com real

representaccedilatildeo dos dados eacute uma coisa muito boa pra quem precisa e por uacuteltimo o que muitos

usam mas natildeo sabem o nome ao certo que satildeo os Browsers ou Navegadores softwares usados

para navegar na Web dentre eles os mais conhecidos atualmente satildeo Windows Internet

Explorer Firefox Google Chrome Opera e Safaacuteri

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3665

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3765

37

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

hoje eles satildeo bastante usados em situaccedilotildees de treinamentos de pessoas para enfrentar casos no

seu dia-a-dia

SOFTWARE DE JOGOS

Geralmente satildeo softwares relacionados a entretenimento para proporcionar lazer e diversatildeo

Dispotildeem de muitos recursos interativos e existem de todos os tipos desde estrateacutegias ateacute

simulaccedilotildees reais de muitas coisas como corridas (Need for Speed) ateacute mesmo de vida como o

Second Life

SOFTWARES ABERTOS

Satildeo aqueles que permitem que o usuaacuterio produza com liberdade e criatividade se classificam

nessa categoria aqueles softwares de apresentaccedilotildees bancos de dados e vaacuterios outros

Para fixar

Descreva uma definiccedilatildeo para os tipos de softwares

Software de Sistema_____________________________________________________________

Software Aplicativo ______________________________________________________________

Software de Linguagem __________________________________________________________

Software abertos _______________________________________________________________

Capiacutetulo 4 - Conceitos Baacutesicos de Banco de Dados

Segundo Korth um banco de dados ldquoeacute uma coleccedilatildeo de dados inter -relacionados

representando informaccedilotildees sobre um domiacutenio especiacuteficordquo ou seja sempre que for possiacutevel

agrupar informaccedilotildees que se relacionam e tratam de um mesmo assunto posso dizer que tenho

um banco de dados

Podemos exemplificar situaccedilotildees claacutessicas como uma lista telefocircnica um cataacutelogo de CDs ou um

sistema de controle de RH de uma empresa

Jaacute um sistema de gerenciamento de banco de dados (SGBD) eacute um software que possui

recursos capazes de manipular as informaccedilotildees do banco de dados e interagir com o usuaacuterio

Exemplos de SGBDs satildeo Oracle SQL Server DB2 PostgreSQL MySQL o proacuteprio Access ouParadox entre outros

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3865

38

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Por uacuteltimo temos que conceituar um sistema de banco de dados como o conjunto de quatro

componentes baacutesicos dados hardware software e usuaacuterios Date conceituou que ldquosistema de

bancos de dados pode ser considerado como uma sala de arquivos eletrocircnicardquo A Figura 1 ilustra

os componentes de um sistema de banco de dados

Componentes de um sistema de banco de dados

Os objetivos de um sistema de banco de dados satildeo o de isolar o usuaacuterio dos detalhes

internos do banco de dados (promover a abstraccedilatildeo de dados) e promover a independecircncia dos

dados em relaccedilatildeo agraves aplicaccedilotildees ou seja tornar independente da aplicaccedilatildeo a estrateacutegia de

acesso e a forma de armazenamento

Abstraccedilatildeo de dados

O sistema de banco de dados deve garantir uma visatildeo totalmente abstrata do banco de

dados para o usuaacuterio ou seja para o usuaacuterio do banco de dados pouco importa qual unidade de

armazenamento estaacute sendo usada para guardar seus dados contanto que os mesmos estejam

disponiacuteveis no momento necessaacuterio

Esta abstraccedilatildeo se daacute em trecircs niacuteveis (Figura 2) Niacutevel de visatildeo do usuaacuterio as partes do banco de dados que o usuaacuterio tem acesso de

acordo com a necessidade individual de cada usuaacuterio ou grupo de usuaacuterios

Niacutevel conceitual define quais os dados que estatildeo armazenados e qual o relacionamento

entre eles

Niacutevel fiacutesico eacute o niacutevel mais baixo de abstraccedilatildeo em que define efetivamente de que maneira

os dados estatildeo armazenados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3965

39

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 2 Niacuteveis de abstraccedilatildeo

Projeto de banco de dados

Todo bom sistema de banco de dados deve apresentar um projeto que visa a organizaccedilatildeo das

informaccedilotildees e utilizaccedilatildeo de teacutecnicas para que o futuro sistema obtenha boa performance e

tambeacutem facilite infinitamente as manutenccedilotildees que venham a acontecer

O projeto de banco de dados se daacute em duas fases

Modelagem conceitual Projeto loacutegico

Estas duas etapas se referem a um sistema de banco de dados ainda natildeo implementado ou seja

que ainda natildeo exista um novo projeto Para os casos em que o banco de dados jaacute exista mas eacute

um sistema legado por exemplo ou um sistema muito antigo sem documentaccedilatildeo o processo de

projeto de banco de dados se daraacute atraveacutes da utilizaccedilatildeo de uma teacutecnica chamada de Engenharia

Reversa que seraacute visto em outra oportunidade

Modelo conceitual

Eacute a descriccedilatildeo do BD de maneira independente ao SGBD ou seja define quais os dados

que apareceratildeo no BD mas sem se importar com a implementaccedilatildeo que se daraacute ao BD Desta

forma haacute uma abstraccedilatildeo em niacutevel de SGBD

Uma das teacutecnicas mais utilizadas dentre os profissionais da aacuterea eacute a abordagem entidade-

relacionamento (ER) onde o modelo eacute representado graficamente atraveacutes do diagrama entidade-

relacionamento (DER) (Figura 3)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 9: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 965

9

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Apesar das facilidades trazidas pelos semicondutores os computadores dessa geraccedilatildeo

natildeo foram reduzidos sendo que um dos modelos de mais sucesso (o IBM 360 que vendeu mais

de 30 mil unidades) chegava a pesar mais do que os antecessores Nessa eacutepoca (final da deacutecada

de 1970 e iniacutecio da deacutecada de 1980) os computadores passaram a ser mais acessiacuteveis

Outro grande avanccedilo da terceira geraccedilatildeo foi a adiccedilatildeo da capacidade de upgrade nas

maacutequinas As empresas poderiam comprar computadores com determinadas configuraccedilotildees e

aumentar as suas capacidades de acordo com a necessidade pagando relativamente pouco por

essas facilidades IBM 360

QUARTA GERACcedilAtildeO DOS COMPUTADORES - (1971 - 1980)

A quarta geraccedilatildeo teve iniacutecio em 1971 quando a Intel lanccedilou o primeiro microprocessador

o Intel 4004 muito mais potente que os circuitos SSI e MSI de ateacute entatildeo e soacute terminou em 1981

com o lanccedilamento dos circuitos ULSI (Circuitos de Escala Ultra Grande) Tem como marco inicial

com os computadores pessoais surgimento do microprocessador a reduccedilatildeo no tamanho dos

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1065

10

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

computadores foi muito grande Surgem muitas linguagens de alto niacutevel e nasce agrave teleinformaacutetica

transmissatildeo de dados entre computadores atraveacutes de rede

Continuou-se o desenvolvimento do Circuito Integrado e a busca de se colocar cada vez

mais um maior nuacutemero de componentes em um chip

A Intel comeccedilou suas pesquisas nessa aacuterea em 1969 Os resultados foram vistos quando

em novembro de 1971 buscando atender ao pedido de uma empresa japonesa que precisava de

um circuito integrado especial a Intel elaborou o 4004 criado por Federico Faggin Ted Hoff

e Stanley Mazor primeiro microprocessador comercial

Internet

De 1969 a 1972 foi criada a Arpanet que deu iniacutecio a Internet (teleinformaacutetica) que conhecemos

hoje A rede entrou no ar em dezembro de 1969 no EUA Eles eram interligados atraveacutes de links

de 50 k criados usando linhas telefocircnicas dedicadas adaptadas para o uso de transmissatildeo de

dados

Em 1971 ocorre a transmissatildeo do primeiro e-mail realizada pela Universidade da Califoacuternia para

um computador na Stanford Research Institute com o texto ldquoLOGINrdquo mas chegou apenas LO

A Ethernet surgiu entre 1972 e 1973 dentro do PARC (o laboratoacuterio de desenvolvimento da Xerox

nos Estados Unidos) onde foi feito o primeiro teste de transmissatildeo de dados usando esse

padratildeo

Em 1974 surgiu o TCPIP que acabou se tornando o protocolo definitivo para uso

na ARPANET e mais tarde na Internet

QUINTA GERACcedilAtildeO DOS COMPUTADORES ndash (1980Atualmente)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1165

11

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Desde o iniacutecio da era dos microcomputadores o avanccedilo tem sido constante O computador

que se fabrica hoje dentro de alguns meses jaacute estaacute obsoleto

Atualmente o que vem surgindo satildeo inuacutemeras renovaccedilotildees com o objetivo de evoluir os sistemas

rdquoEmbora os paradigmas possam mudar as pesquisas normalmente evoluem baseadas em

resultados do passado que se constituem em fundamentos de um desenvolvimento posteriorhelliprdquo

Para Fixar

Escreva um breve resumo sobre o processo evolutivo dos computadores

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________ ___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

__________________________________________________________________

SOFTWARES

O QUE Eacute Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por

um computador com o objetivo de executar tarefas especiacuteficas Em um computador o software eacute

classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer instruccedilotildees para o hardware

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1265

12

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Diferentemente do que muitas pessoas imaginam o computador natildeo faz nada sozinho Ele

apenas processa uma seacuterie de informaccedilotildees inseridas pelo usuaacuterio para entatildeo fornecer os

resultados As informaccedilotildees inseridas e os resultados que recebemos precisam estar num formato

que noacutes humanos conseguimos entender Para facilitar essa comunicaccedilatildeo entre homem e

computador foram criados os softwares ou programas de computador Na realidade tudo que

fazemos com um computador eacute pela execuccedilatildeo desses programas

Um sistema operacional eacute um programa que atua como intermediaacuterio entre o usuaacuterio e o

hardware de um computador O propoacutesito de um sistema operacional eacute propiciar um ambiente no

qual o usuaacuterio possa executar outros programas de forma conveniente por esconder detalhes

internos de funcionamento e eficiecircncia por procurar gerenciar de forma justa os recursos do

sistema

Vimos que o sistema operacional interage diretamente com o hardware e com isso eacuteinfluenciado diretamente pela evoluccedilatildeo do mesmo Portanto a evoluccedilatildeo dos sistemas

operacionais estaacute em grande parte relacionada ao desenvolvimento de equipamentos cada vez

mais velozes compactos e de custos baixos e agrave necessidade de aproveitamento e controle

destes recursos

Assim ao falar sobre o histoacuterico dos sistemas operacionais estaremos recordando um

pouco a evoluccedilatildeo do hardware Devemos lembrar que as datas das fases da evoluccedilatildeo satildeo

aproximadasHISTOacuteRIA

Desde os tempos do computador programado por chaves e cabos ateacute o surgimento do

teclado e impressora de caracteres procurou-se ao longo do processo evolutivo do computador

tornar a sua utilizaccedilatildeo mais amigaacutevel precisa raacutepida e eficaz

Primeira geraccedilatildeo (1945-1955)

Vaacutelvulas e Paineacuteis de Programaccedilatildeo - No iniacutecio da Segunda Guerra Mundial surgiram os primeiros

computadores digitais formados por milhares de vaacutelvulas que ocupavam aacutereas enormes sendo

de funcionamento lento e duvidoso O ENIAC foi o primeiro computador digital de propoacutesito geral

Criado para a realizaccedilatildeo de caacutelculos baliacutesticos A programaccedilatildeo era feita em paineacuteis atraveacutes de

fios utilizando linguagem de maacutequina Natildeo existia o conceito de sistema operacional Outros

computadores foram construiacutedos nessa eacutepoca mas eram utilizados apenas em universidades e

oacutergatildeos militares

SEGUNDA GERACcedilAtildeO (1956-1965)

Transistores e Sistemas em Lote (batch)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1365

13

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

A criaccedilatildeo do transistor e das memoacuterias magneacuteticas contribuiu para o enorme avanccedilo dos

computadores da eacutepoca O transistor permitiu o aumento da velocidade e da confiabilidade do

processamento as memoacuterias magneacuteticas permitiram o acesso mais raacutepido aos dados maior

capacidade de armazenamento e computadores menores

Surgiram os primeiros sistemas operacionais para tentar automatizar as tarefas manuais

ateacute entatildeo realizadas e as primeiras linguagens de programaccedilatildeo como Assembly e Fortran Os

programas deixaram de ser feitos diretamente no hardware o que facilitou enormemente o

processo de desenvolvimento de programas Surgiu o processamento em batch em que um lote

(batch) de programas e de dados era submetido ao computador por vez

Terceira geraccedilatildeo (1966-1980)

Circuitos Integrados e Multiprogramaccedilatildeo

Por meio dos circuitos integrados e posteriormente dos microprocessadores foi possiacutevelviabilizar e difundir o uso de sistemas computacionais por empresas devido agrave diminuiccedilatildeo de seus

custos de aquisiccedilatildeo Houve um aumento no poder de processamento e diminuiccedilatildeo no tamanho

dos equipamentos

A evoluccedilatildeo dos processadores de entradasaiacuteda permitiu que enquanto um programa

esperasse por uma operaccedilatildeo de leituragravaccedilatildeo o processador executasse um outro programa

Para tal a memoacuteria foi dividida em particcedilotildees em que um programa esperava sua vez para ser

processado A essa teacutecnica de compartilhamento da memoacuteria principal e processador deu-se onome de multiprogramaccedilatildeo

QUARTA GERACcedilAtildeO (1981-1990)

Computadores Pessoais

Os mini e superminicomputadores se firmaram no mercado e os microcomputadores

ganharam um grande impulso Surgem as estaccedilotildees de trabalho (workstations) que apesar de

monousuaacuterias permitem que se executem diversas tarefas concorrentemente criando o conceito

de multitarefa

No final dos anos 80 os computadores tiveram um grande avanccedilo decorrente de aplicaccedilotildees que

exigiam um enorme volume de caacutelculos Para acelerar o processamento foram adicionados

outros processadores exigindo dos sistemas operacionais novos mecanismos de controle e

sincronismo Com o multiprocessamento foi possiacutevel a execuccedilatildeo de mais de um programa

simultaneamente ou ateacute de um mesmo programa por mais de um processador Foram

introduzidos processadores vetoriais e teacutecnicas de paralelismo de processamento fazendo com

que os computadores se tornassem ainda mais poderosos

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1465

14

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O uso das redes distribuiacutedas se difundiu por todo o mundo permitindo o acesso a outros

sistemas de computaccedilatildeo independentemente de cidade paiacutes e ateacute mesmo fabricante Os

softwares de rede passaram a estar intimamente relacionados com o sistema operacional de cada

maacutequina e surgem os sistemas operacionais de rede

QUINTA GERACcedilAtildeO (1991ATUALMENTE)

Houve grandes avanccedilos em termos de hardware software e telecomunicaccedilotildees como

consequecircncia da evoluccedilatildeo das aplicaccedilotildees que necessitavam cada vez mais de capacidade de

processamento e armazenamento de dados Sistemas especialistas sistemas multimiacutedia bancos

de dados distribuiacutedos inteligecircncia artificial e redes neurais satildeo apenas alguns exemplos da

necessidade cada vez maior de informaccedilatildeo e de capacidade de processamento O conceito de

processamento distribuiacutedo eacute explorado nos sistemas operacionais de forma que suas funccedilotildees

estejam espalhadas por vaacuterios processadores atraveacutes de redes de computadores A deacutecada de 90 foi definitiva para a consolidaccedilatildeo dos sistemas operacionais baseados em

interfaces graacuteficas

Atualmente temos as plataformas multicore (vaacuterios nuacutecleos) disponiacuteveis em computadores

pessoais e ateacute notebooks possibilitando cada vez mais a paralelizaccedilatildeo de aplicaccedilotildees e elevando

em muito o tempo de execuccedilatildeo dos programas Os fanaacuteticos pelos jogos de computador que o

digam

Os sistemas operacionais - satildeo parte fundamental dos computadores satildeo responsaacuteveis pororganizar os processos (programas) que estatildeo sendo executados pelo processador criando uma

fila de processos que garante que todos receberatildeo sua parcela de processamento

Para Fixar

Escreva um breve resumo sobre o processo evolutivo dos Softwares

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________ __________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1565

15

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

PRINCIacutePAIS SISTEMAS OPERACIONAIS

Principais SO que deram iniacutecio a era Windows MCs Linux e Unix

1987 ndash Andrew Tanenbaum um professor de computaccedilatildeo holandecircs desenvolve um sistema

operacional didaacutetico simplificado mas respeitando a API do UNIX que foi batizado como Minix

1987 ndash IBM e Microsoft apresentam a primeira versatildeo do OS2 um sistema multitarefa destinado

a substituir o MS-DOS e o Windows Mais tarde as duas empresas rompem a parceria a IBM

continua no OS2 e a Microsoft investe no ambiente Windows

1991 ndash Linus Torvalds um estudante de graduaccedilatildeo Finlandecircs inicia o desenvolvimento do Linux

lanccedilando na rede Usenet o nuacutecleo 001 logo abraccedilado por centenas de programadores ao redor

do mundo

1993 ndash a Microsoft lanccedila o Windows NT o primeiro sistema 32 bits da empresa

Capiacutetulo 2 ndash Banco de Dados

Banco de dados eacute um arquivo especial que armazena dados arrumados sob forma de

tabelas ou matrizes (em linhas e colunas) Quando um conjunto de informaccedilotildees possui muitasvariaacuteveis interligadas entre si eacute aconselhaacutevel que sejam armazenadas e trabalhadas em um

banco de dados Os bancos de dados fornecem uma seacuterie de funcionalidades que natildeo satildeo

encontradas em arquivos comuns ldquoBancos de dados satildeo coleccedilotildees de informaccedilotildees que se

relacionam de forma que crie um sentidordquo Satildeo de vital importacircncia para empresas e haacute duas

deacutecadas se tornaram a principal peccedila dos sistemas de informaccedilatildeo ldquoFonte Wikipeacutediardquo

Entatildeo um banco de dados eacute uma entidade na qual eacute possiacutevel armazenar dados de maneira

estruturada e com a menor redundacircncia possiacutevel Estes dados devem poder ser utilizadas porprogramas por usuaacuterios diferentes Assim a noccedilatildeo baacutesica de dados eacute acoplada geralmente a

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1665

16

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

uma rede a fim de poder pocircr conjuntamente estas informaccedilotildees daiacute o nome banco Fala-se

geralmente de sistema de informaccedilatildeo para designar toda a estrutura que reuacutene os meios

organizados para poder compartilhar dados

DADOS amp INFORMACcedilOtildeES

Muitos consideram dados e informaccedilotildees como palavras sinocircnimas mas na verdade natildeo satildeo

Para entender o que eacute um banco de dados eacute muito importante saber a diferenccedila entre essas duas

palavras

Dados satildeo fatos brutos em sua forma primaacuteria E muitas vezes os dados podem natildeo fazer

sentido sozinhos

Informaccedilotildees consistem no agrupamento de dados de forma organizada para fazer sentido

gerar conhecimento

Por exemplo o nuacutemero 2001 isoladamente faz algum sentido Natildeo Isso eacute um dado E se eu

dissesse ldquoAno do atentado terrorista agraves torres gecircmeas 2001Prime Agora faz sentido Isso eacute

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1765

17

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

uma informaccedilatildeo Um banco de dados eacute uma estrutura de dados organizada que permite a

extraccedilatildeo de informaccedilotildees

Metadados ndash Eacute todo dado relativo a outro dado eacute chamado de metadados No exemplo anterior

do ano 2001 o dado ldquoAno do atentado terrorista agraves torres gecircmeasrdquo eacute um metadado pois ele eacute um

dado sobre o dado ldquo2001rdquo Outro exemplo mais comum em banco de dados o campo telefone da

tabela cliente tem entre outros os seguinte metadados nome (telefone) tipo (texto) tamanho (30

caracteres) obrigatoriedade (natildeo) etc

Um banco de dados eacute formado por dado e metadados Sem os metadados natildeo seria

possiacutevel organizar e extrair informaccedilotildees de um banco de dados

Para Fixar

Dados - Em informaacutetica designa-se por dados os elementos de partida que servem de base

para o tratamento e sobre os quais o computador efetua as operaccedilotildees necessaacuterias agrave tarefa emquestatildeo

Os dados satildeo uma representaccedilatildeo dos fatos conceitos ou instruccedilotildees de uma maneira

normalizada que se adapte agrave comunicaccedilatildeo interpretaccedilatildeo e processamento pelo ser humano ou

atraveacutes de maacutequinas automaacuteticas

Os dados satildeo representados por siacutembolos como por exemplo as letras do alfabeto a b c

etc mas natildeo satildeo em si a informaccedilatildeo desejada

ExemploO I O C O M B - satildeo dados mas natildeo eacute informaccedilatildeo perceptiacutevel ao homem

A informaccedilatildeo natildeo eacute mais do que dados organizados e ordenados de forma uacutetil Isto eacute informaccedilatildeo

eacute o conhecimento produzido como resultado do processamento de dados

Se processarmos os dados que tiacutenhamos anteriormente entatildeo obtemos a informaccedilatildeo

O I O C O M B - Dados

- Processamento

C O M B O I O ndash Informaccedilatildeo

Para fixar

Escreva o significado de

Dados___________________________________________________________________

_________________________________________________________________________

Informaccedilatildeo_______________________________________________________________

_________________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1865

18

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Metadados_______________________________________________________________

_________________________________________________________________________

Banco de

dados___________________________________________________________________

_________________________________________________________________________

A histoacuteria dos bancos de dados

Hoje os bancos de dados satildeo essenciais para muitas empresas e estatildeo no coraccedilatildeo de

muitos sistemas computacionais Ter acesso raacutepido agraves informaccedilotildees eacute muito importante para a

correta tomada de decisotildees em um negoacutecio Se vocecirc pretende trabalhar com desenvolvimento de

softwares com certeza precisaraacute trabalhar com bancos de dados em algum momento Conhecer

a histoacuteria dos bancos de dados e como eles evoluiacuteram eacute muito importante para entender como os

bancos de dados mais comuns satildeo organizados Entatildeo como aconteceu a evoluccedilatildeo dos bancos

de dados

Antigamente as empresas armazenavam dados em fichas de papel que eram organizadas

em arquivos fiacutesicos atraveacutes de pastas Extrair informaccedilotildees e manter esses arquivos organizados

era uma tarefa muito custosa Aleacutem disso o acesso agrave informaccedilatildeo dependia da localizaccedilatildeo

geograacutefica dos arquivos Enfim esses arquivos fiacutesicos evoluiacuteram para arquivos digitais No iniacutecio

cada entidade (clientes funcionaacuterios produtos etc) era um arquivo de dados que eram

acompanhados de um ldquosoftware simplesrdquo para manipular os dados do arquivo esses softwares

permitiam realizar operaccedilotildees de cadastro alteraccedilatildeo exclusatildeo e consulta nos arquivos digitais De

fato melhorou bastante principalmente a tarefa de consulta de informaccedilotildees poreacutem os arquivos

digitais eram ainda uma versatildeo melhorada dos arquivos fiacutesicos

Mas as entidades precisavam relacionar-se por exemplo um produto eacute fornecido por

um fornecedor e com os arquivos digitais relacionaacute-las natildeo era uma tarefa muito trivial os

ldquosoftwares simplesrdquo para manipular os arquivos digitais comeccedilaram a ficar ldquocomplexosrdquo para

permitir os relacionamentos entre entidades Entatildeo na deacutecada de 60 a empresa IBM investiu

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1965

19

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

fortemente em pesquisas para solucionar estes problemas dos bancos de dados digitais

primitivos Vaacuterios modelos de bancos de dados surgiram nesta eacutepoca dentre eles os modelos

hieraacuterquicos e rede

Em junho de 1970 o pesquisador Edgar Frank ldquoTedrdquo Codd da IBM mudou a histoacuteria dos

bancos de dados apresentando o modelo relacional no artigo intitulado ldquoA Relational Model of

Data for Large Shared Data Banksrdquo (Um modelo relacional de dados para grandes bancos de

dados compartilhados) onde o autor apresentou uma forma de usuaacuterios sem conhecimento

teacutecnico armazenarem e extraiacuterem grandes quantidades de informaccedilotildees de um banco de dados

Esse artigo foi o grande impulso para a evoluccedilatildeo dos bancos de dados a partir do artigo de ldquoTedrdquo

Codd que os cientistas aprofundaram a ideia de criar o modelo de banco de dados relacional

BANCO DE DADOS RELACIONAL

Apesar de ter sido o marco dos bancos de dados relacionais o artigo de Codd natildeo foimuito explorado no iniacutecio Soacute no final da deacutecada de 70 que foi desenvolvido um sistema baseado

nas ideias do cientista o ldquoSistema Rrdquo Junto com esse sistema foi criado a linguagem de consulta

estruturada (SQL ndash Structured Query Language) que se tornou a linguagem padratildeo para bancos

de dados relacionais Embora tenha contribuiacutedo para a evoluccedilatildeo dos bancos de dados

relacionais o ldquoSystem Rrdquo natildeo foi muito bem sucedido comercialmente mas os sistemas de banco

de dados seguintes foram baseados nele

Nos anos 80 surgiram outros bancos de dados a Oracle apresentou o Oracle 2 e a IBMo SQLDS (que se tornou DB2) ambos sistemas comerciais de bancos de dados Na sequencia

vieram SQL Server MySQL DBase III Paradox etchellip

BANCOS DE DADOS HOJE

Atualmente existem vaacuterios modelos de bancos de dados tais como orientado a objetos

orientado a documentos etc Mas o mais comum ainda eacute o banco de dados relacional A decisatildeo

entre qual modelo de banco de dados utilizarem baseia-se no tipo de dados que vocecirc pretende

armazenar Por exemplo se vocecirc for armazenar uma grande quantidade de dados em um modelo

pequeno (imagine um banco de dados para o twitter) eacute mais indicado utilizar um banco de dados

orientado a documentos a um banco de dados relacional Muitas questotildees envolvem essa

decisatildeo mas natildeo eacute uma questatildeo de superioridade entre uma ou outra tecnologia todas tecircm proacutes

e contras e satildeo mais indicadas ou natildeo para cada problema

Para fixar

Faccedila um breve resumo sobre o surgimos dos bancos de dados

______________________________________________________________________________

______________________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2065

20

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

Dados amp Informaccedilatildeo

A informaccedilatildeo eacute encarada atualmente como um dos recursos mais importantes de uma

organizaccedilatildeo contribuindo decisivamente para a sua maior ou menor competitividade De fato

com o aumento da concorrecircncia tornou-se vital melhorar as capacidades de decisatildeo a todos osniacuteveis

Hoje mais que nunca a tomada de decisatildeo nas organizaccedilotildees eacute um processo complexo

dada a qualidade de informaccedilatildeo em jogo a sua complexidade e a frequecircncia com que se altera

No entanto para que possa ser utilizada com um apoio eficaz agrave tomada de decisatildeo a informaccedilatildeo

soacute tecircm valor se verificarem simultaneamente algumas condiccedilotildees

ATUALIDADE ndash O valor da informaccedilatildeo dependeraacute em grande parte da sua atualidade

Dado o dinamismo verificado em todos os setores da sociedade em geral e do ambiente

empresarial em particular o periacuteodo de validade da informaccedilatildeo eacute cada vez mais curto Torna-se

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2165

21

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

necessaacuterio dispor de fontes de informaccedilatildeo que acompanhem continuamente essas modificaccedilotildees

Soacute com base em informaccedilatildeo atualizada se podem tomar decisotildees acertadas

CORRECcedilAtildeO ndash Natildeo basta que a informaccedilatildeo seja atual eacute tambeacutem necessaacuterio que na

medida do possiacutevel seja rigorosa Soacute com informaccedilatildeo correta se pode decidir com confianccedila

RELEVAcircNCIA ndash Dado o grande de volume de informaccedilatildeo envolvida o processo de tomada

de decisatildeo ao contraacuterio de ser facilitado pode ser dificultado pelo excesso de informaccedilatildeo A

informaccedilatildeo deve ser devidamente filtrada de tal forma que apenas aquela com relevacircncia para

cada situaccedilatildeo seja considerada

DISPONIBILIDADE ndash Ainda que a informaccedilatildeo verifique os trecircs requisitos anteriores a sua

utilidades poderaacute ser posta em causa se natildeo puder ser disponibilizada de forma imediata no

momento em que eacute solicitada As decisotildees muito ponderadas com o longo periacuteodo de gestaccedilatildeo

satildeo cada vez mais situaccedilotildees do passado Hoje dadas as caracteriacutesticas do meio envolvente oprocesso de tomada de decisatildeo tem que ser quase instantacircneo Para isso a informaccedilatildeo tem que

ser disponibilizada rapidamente caso contraacuterio deixa de ser uacutetil

LEGIBILIDADE - Esta condiccedilatildeo apesar de apresentada em uacuteltimo lugar natildeo eacute por isso

menos importante A informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada

De fato de nada vale que a informaccedilatildeo seja atual precisa relevante e disponibilizada em

tempo oportuno se natildeo puder ser entendida A forma como eacute disponibilizada tem tambeacutem grande

importacircncia informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada A forma como eacutedisponibilizada tem tambeacutem grande importacircncia

Quanto aos requisitos de atualidade e correccedilatildeo da informaccedilatildeo para que esta possa ser

correta e atual os dados de onde eacute derivada tecircm forccedilosamente que ser precisos e atualizados

Quanto aos requisitos de relevacircncia disponibilidade e legibilidade da informaccedilatildeo estes tecircm mais

a ver com os meios utilizados para o processamento dos dados

Como eacute que a informaccedilatildeo eacute organizada

A organizaccedilatildeo da informaccedilatildeo eacute efetuada de acordo com criteacuterios distintos como

Hierarquia dos seus componentes

O tipo de assunto a que se refere

Forma de armazenamento

Quanto agrave HIERARQUIA DOS COMPONENTES DA INFORMACcedilAtildeO esta eacute organizada em

Caracteres Campos Registros Ficheiros Caracteres - podem ser numeacutericos alfabeacuteticos ou

sinais de pontuaccedilatildeo Campos - satildeo conjuntos de caracteres que identificam um componente de

um registo Registos - satildeo agrupamentos de campos descritivos de uma realidade Ficheiros - satildeo

conjuntos de registos cuja informaccedilatildeo eacute estruturalmente analoacutegica

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2265

22

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Quanto AO TIPO DE ASSUNTO a que se refere agrave informaccedilatildeo

Esta pode ser como que etiquetada de modo a tornar faacutecil a sua procura e a evitar perdas

de tempo

Quando a informaccedilatildeo estaacute armazenada em ficheiros estes indicam o seu tipo atraveacutes de

uma extensatildeo ao nome do ficheiro

Algumas das extensotildees mais comuns satildeo

- COM ficheiro de comandos - BACK backup ou coacutepias de seguranccedila- EXE executaacuteveis - SYS ficheiros de sistema

- BAT processamento batch - XLS folha de caacutelculo provenientes do Excel

- TXT texto no formato ASCII - PPT apresentaccedilotildees provenientes do PowerPoint

- PAS programas em Linguagem Pascal - MBD base de dados provenientes do Access

- C programas em Linguagem C - DOC documentos provenientes de um processador de

texto

Quanto Agrave FORMA DE ARMAZENAMENTO da informaccedilatildeoRelativamente ao armazenamento por exemplo no disco riacutegido do computador a

informaccedilatildeo eacute organizada em diretorias cujo nome revela o tipo de ficheiros que aiacute se encontram

podendo cada diretorias conter diversas subdiretorias

Organizaccedilatildeo dos dados num Computador

Os dados que fornecemos a um computador para processar podem ser de trecircs tipos

quantitativos classificativos referenciais

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2365

23

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Dados quantitativos - satildeo os que exprimem quantidades e por isso normalmente servem

de base para caacutelculos aritmeacuteticos Exemplo a ficha escolar as notas do periacuteodo as faltas o total

das faltas

bull Dados classificativos - satildeo os que descrevem ou especificam os elementos envolvidos e

quantificados Normalmente servem de complemento aos dados quantitativos identificando

pessoas objetos situaccedilotildees etc Natildeo servem portanto para elementos de caacutelculo Exemplo a

ficha escolar o nome do aluno o nome da disciplina o nome do professor

bull Dados referenciais - satildeo dados que permitem controlar e referenciar os elementos

tratados Exemplo a ficha escolar o ano letivo o nuacutemero do aluno a turma

Para fixar

Escreva de forma resumida como podemos organizar os dados

_________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

Tipos de Operaccedilotildees realizadas sobre os dados

O tipo de operaccedilotildees efetuadas depende dos objetivos do processamento e igualmente dostipos de dados nele envolvidos pois o computador pode processar dados numeacutericos ou natildeo

numeacutericos Assim temos como operaccedilotildees possiacuteveis num processamento

bull Operaccedilotildees aritmeacuteticas - satildeo efetuadas apenas sobre dados numeacutericos e satildeo

basicamente constituiacutedas por somas subtraccedilotildees multiplicaccedilotildees divisotildees e outras similares

bull Operaccedilotildees loacutegicas - satildeo efetuadas sobre dados numeacutericos ou natildeo numeacutericos Estas

operaccedilotildees satildeo tambeacutem por vezes designadas por operaccedilotildees de comparaccedilatildeo

bull Operaccedilotildees de movimentaccedilatildeo interna - satildeo efetuadas sobre qualquer tipo de dados e

consistem na coacutepia e mudanccedila de localizaccedilatildeo interna dos dados na memoacuteria do computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2465

24

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Operaccedilatildeo de InputOutput - satildeo as operaccedilotildees que envolvem os oacutergatildeos de entrada e

saiacuteda permitindo a comunicaccedilatildeo entre o operador e a maacutequina

Funccedilotildees do processamento de dados

Considera-se como processamento de dados o conjunto de todas as operaccedilotildees efetuadas desde

a entrada dos dados ateacute agrave saiacuteda da informaccedilatildeo Todas estas operaccedilotildees de vaacuterios tipos satildeo

normalmente associadas a seis funccedilotildees do processamento de dados input ordenaccedilatildeo

processamento armazenamento output e controle

bull Input - fase de seleccedilatildeo e aquisiccedilatildeo dos dados pelo computador

bull Ordenaccedilatildeo - esta eacute uma funccedilatildeo auxiliar O seu objetivo eacute dispor os dados de uma forma

organizada (ordenada) de modo a facilitar o seu tratamento Se os dados se mantiverem

ordenados segundo um determinado criteacuterio preacute-definido a sua pesquisa eacute mais faacutecil o que faz

aumentar a velocidade do processamento

bull Processamento - considera-se processamento ao conjunto de todas as operaccedilotildees

efetuadas internamente pelo computador na manipulaccedilatildeo dos dados

bull Armazenamento - esta eacute uma funccedilatildeo muito importante que permite posteriormente

analisar as etapas e os resultados do processamento

bull Output - eacute a obtenccedilatildeo de resultados sob a forma de informaccedilatildeo significativa para as

pessoas a quem se destina

bull Controle - a sua finalidade eacute detectar corrigir e eliminar possiacuteveis erros ou afastamentosem relaccedilatildeo aos objetivos inicialmente traccedilados

Utilidade de um banco de dados

Um banco de dados permite pocircr dados agrave disposiccedilatildeo de usuaacuterios para uma consulta uma

introduccedilatildeo ou uma atualizaccedilatildeo assegurando-se dos direitos atribuiacutedos a estes uacuteltimos Isso eacute

ainda mais uacutetil quando os dados informaacuteticos satildeo cada vez mais numerosos

Um banco de dados pode ser local quer dizer utilizaacutevel em uma maacutequina por um usuaacuterio

ou repartida quer dizer que as informaccedilotildees satildeo armazenadas em maacutequinas distantes eacessiacuteveis por rede A vantagem essencial da utilizaccedilatildeo dos bancos de dados eacute a possibilidade

de poder ser acessada por vaacuterios usuaacuterios simultaneamente

A gestatildeo dos bancos de dados

A fim de poder controlar os dados bem como os usuaacuterios a necessidade de um sistema de

gestatildeo fez-se sentir rapidamente A gestatildeo do banco de dados faz-se graccedilas a um sistema

chamado SGBD (sistema de gestatildeo de bancos de dados) ou em inglecircs DBMS (Database

managment system) O SGBD eacute um conjunto de serviccedilos (aplicaccedilotildees software) que permitem

gerenciar os bancos de dados quer dizer

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2565

25

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Permitir o acesso aos dados de maneira simples

Autorizar um acesso agraves informaccedilotildees a muacuteltiplos usuaacuterios

Manipular os dados presentes no banco de dados (inserccedilatildeo supressatildeo modificaccedilatildeo)

O SGBD pode decompor-se em trecircs subsistemas

O sistema de gestatildeo de arquivos permite o armazenamento das informaccedilotildees num suporte

fiacutesico

O SGBD interno gerencia a emissatildeo das informaccedilotildees

O SGBD externo representa a interface com o usuaacuterio

Bancos de dados satildeo conjuntos de dados com uma estrutura regular que organizam

informaccedilatildeo Um banco de dados normalmente agrupa informaccedilotildees utilizadas para um mesmo fim

O modelo de dados mais adotado hoje em dia eacute o modelo relacional onde as estruturas

tecircm a forma de tabelas compostas por linhas e colunas

Resumindo um banco de dados eacute uma coleccedilatildeo de dados relacionados Entende-se por

dado toda a informaccedilatildeo que pode ser armazenada e que apresenta algum significado impliacutecito

dentro do contexto ao qual ele se aplica Por exemplo num sistema bancaacuterio uma pessoa eacuteidentificada pelo seu cpf(cliente) Em um sistema escolar a pessoa eacute identificada pelo seu nuacutemero

de matriacutecula(aluno) Aleacutem disso os dados que seratildeo armazenados em cada situaccedilatildeo podem

diferir consideravelmente

Atividades

1) Onde utilizar um banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2665

26

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2) Como funciona um sistema gerenciador de banco de dados

3) Como funciona o modelo relacional

Modelo Relacional

O modelo relacional eacute uma teoria matemaacutetica desenvolvida por Edgar Frank Codd para

descrever como as bases de dados devem funcionar Embora esta teoria seja a base para o

software de bases de dados relacionais muito poucos sistemas de gestatildeo de bases de dados

seguem o modelo de forma restrita e todos tecircm funcionalidades que violam a teoria desta forma

variando a complexidade e o poder A discussatildeo se esses bancos de dados merecem ser

chamados de relacional ficou esgotada com tempo com a evoluccedilatildeo dos bancos existentes

De acordo com a arquitetura ANSI SPARC em trecircs niacuteveis os Bancos de dados

relacionais consistem de trecircs componentes

bull uma coleccedilatildeo de estruturas de dados formalmente chamadas de relaccedilotildees ou

informalmente tabelas compondo o niacutevel conceitual

bull uma coleccedilatildeo dos operadores a aacutelgebra e o caacutelculo relacionais que constituem a base da

linguagem SQL

bull uma coleccedilatildeo de restriccedilotildees da integridade definindo o conjunto consistente de estados de

base de dados e de alteraccedilotildees de estados As restriccedilotildees de integridade podem ser de quatro

tipos

bull domiacutenio (ou tipo de dados) bull atributo

bull restriccedilotildees de base de dados

De acordo com o Princiacutepio de Informaccedilatildeo toda informaccedilatildeo tem de ser representada como dados

qualquer tipo de atributo representa relaccedilotildees entre conjuntos de dados

Nos bancos de dados relacionais os relacionamentos entre as tabelas natildeo satildeo codificados

explicitamente na sua definiccedilatildeo Em vez disso se fazem implicitamente pela presenccedila de

atributos chave As bases de dados relacionais permitem aos utilizadores (incluindo

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2765

27

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

programadores) escreverem consultas (queries) reorganizando e utilizando os dados de forma

flexiacutevel e natildeo necessariamente antecipada pelos projetistas originais

Esta flexibilidade eacute especialmente importante em bases de dados que podem ser utilizadas

durante deacutecadas tornando as bases de dados relacionais muito populares no meio comercial

Um dos pontos fortes do modelo relacional de banco de dados eacute a possibilidade de

definiccedilatildeo de um conjunto de restriccedilotildees de integridade Estas definem os conjuntos de estados e

mudanccedilas de estado consistentes do banco de dados determinando os valores que podem e os

que natildeo podem ser armazenados

Aplicaccedilotildees de bancos de dados

Bancos de dados satildeo usados em muitas aplicaccedilotildees enquanto atravessando virtualmente a

gama inteira de software de computador Bancos de dados eacute o meacutetodo preferido de

armazenamento para aplicaccedilotildees multiusuaacuterias grandes onde a coordenaccedilatildeo entre muitosusuaacuterios eacute necessaacuteria Ateacute mesmo usuaacuterios individuais os acham convenientes entretanto e

muitos programas de correio eletrocircnico e os organizadores pessoais estatildeo baseados em

tecnologia de banco de dados standard

Aplicativo de Banco de Dados

Um aplicativo de banco de dados eacute um tipo de software exclusivo para gerenciar um banco

de dados Aplicativos de banco de dados abrangem uma vasta variedade de necessidades e

objetivos de pequenas ferramentas como uma agenda ateacute complexos sistemas empresariaispara desempenhar tarefas como a contabilidade

O termo Aplicativo de Banco de dados usualmente se refere a softwares que oferecem

uma interface para o banco de dados Exemplos de aplicativos de banco de dados satildeo Microsoft

Visual FoxPro Microsoft Access dBASE FileMaker (em certa medida) HyperCard MySQL

PostgreSQL Microsoft SQL Server e Oracle

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2865

28

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Capiacutetulo 3 - HARDWARE E SOFTWARE

O QUE Eacute O HARDWARE

No acircmbito da informaacutetica eacute dada a designaccedilatildeo de hardware a todos os componentes

fiacutesicos que fazem parte de um sistema informaacutetico incluiacutedo toda a parte fiacutesica de um computador

(nomeadamente os processadores motherbord disco riacutegido placas de som placas de viacutedeo

memoacuterias etc) e todos os perifeacutericos (tais como teclados mouse monitores impressoras

scanners modems entre outros)

Peccedilas de um computador

Se vocecirc usa um computador desktop jaacute deve saber que natildeo existe uma parte uacutenica

chamada computador Um computador eacute na verdade um sistema de muitas partes funcionando

em conjunto As partes fiacutesicas que vocecirc pode ver e tocar satildeo denominadas

coletivamente hardware (O software por outro lado se refere agraves instruccedilotildees ou programas que

dizem ao hardware o que fazer)

A ilustraccedilatildeo a seguir mostra os dispositivos de hardware mais comuns em um sistema de

computador desktop Seu sistema pode ter uma aparecircncia um pouco diferente mas

provavelmente possui a maioria destas peccedilas Um computador laptop possui peccedilas semelhantes

mas as combina em um uacutenico pacote do tamanho de um caderno

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2965

29

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Sistema de computador desktop

Unidade de sistema

A unidade de sistema (Gabinete) eacute o nuacutecleo de um sistema de computador Normalmente

eacute uma caixa retangular colocada sobre a mesa ou embaixo dela Dentro dessa caixa estatildeo os

componentes eletrocircnicos que processam as informaccedilotildees O mais importante desses

componentes eacute a CPU (unidade de processamento central) ou microprocessador que atua como

o ceacuterebro do computador Outro componente eacute a memoacuteria RAM que armazena

temporariamente informaccedilotildees utilizadas pela CPU enquanto o computador estaacute ligado As

informaccedilotildees gravadas na RAM satildeo apagadas quando o computador eacute desligado

Quase todas as outras partes do computador se conectam agrave unidade de sistema por meio

de cabos Os cabos satildeo conectados aportas (aberturas) especiacuteficas geralmente na parte traseira

da unidade de sistema O hardware que natildeo faz parte da unidade de sistema eacute

chamado dispositivo perifeacuterico ou simplesmente dispositivo

Unidade de sistema

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3065

30

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Armazenamento

O computador possui uma ou mais unidades de disco ou seja dispositivos que armazenam

informaccedilotildees em um disco de plaacutestico ou de metal O disco preserva as informaccedilotildees mesmo

quando o computador estaacute desligado

Unidade de disco riacutegido

A unidade de disco riacutegido do computador armazena informaccedilotildees em um disco riacutegido que eacute um

prato riacutegido ou pilha de pratos com uma superfiacutecie magneacutetica Como os discos riacutegidos podem

reter uma grande quantidade de informaccedilotildees normalmente eles funcionam como principal meio

de armazenamento do computador guardando praticamente todos os programas e arquivos Em

geral a unidade de disco riacutegido fica localizada dentro da unidade de sistema

Unidade de disco riacutegidoUnidades de CD e DVD

Hoje em dia quase todos os computadores vecircm equipados com uma unidade de CD ou DVD

geralmente localizada na frente da unidade de sistema As unidades de CD usam lasers para ler

(recuperar) dados de um CD Muitas delas tambeacutem podem gravar dados em CDs Se vocecirc tiver

uma unidade de disco gravaacutevel poderaacute armazenar coacutepias de seus arquivos em CDs vazios A

unidade de CD tambeacutem serve para tocar CDs de muacutesica no computador

CD

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3165

31

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

As unidades de DVD fazem o mesmo que as unidades de CD e tambeacutem lecircem DVDs Se vocecirc

tiver uma unidade de DVD poderaacute ver filmes no computador Muitas unidades de DVD podem

gravar dados em DVDs vazios

Dica

Se vocecirc tiver uma unidade de CD ou DVD gravaacutevel faccedila backup (copie) periodicamente de seus

arquivos importantes em CDs ou DVDs Dessa forma caso venha a ocorrer alguma falha no disco

riacutegido vocecirc natildeo perderaacute os dados

Unidade de disquete

As unidades de disquete armazenam informaccedilotildees em discos tambeacutem chamados discos

flexiacuteveis ou disquetes Comparado a CDs e DVDs os disquetes podem armazenar apenas uma

pequena quantidade de dados Eles tambeacutem recuperam informaccedilotildees de forma mais lenta e satildeo

mais vulneraacuteveis a danos Por esses motivos as unidades de disquete satildeo cada vez menosusadas embora ainda sejam incluiacutedas em alguns computadores

Disquete

Por que estes discos satildeo chamados de disquetes Apesar de a parte externa ser composta de

plaacutestico riacutegido isso eacute apenas a capa O interior do disco eacute feito de um material de vinil fino e

flexiacutevel

Mouse

Mouse eacute um pequeno dispositivo usado para apontar e selecionar itens na tela do computador

Embora existam mouses de vaacuterias formas o modelo mais comum se assemelha a um rato (como

diz o nome em inglecircs) Ele eacute pequeno e alongado sendo conectado agrave unidade de sistema por um

cabo comprido que faz lembrar uma cauda Alguns mouses mais novos satildeo sem fio

Mouse

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3265

32

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O mouse geralmente possui dois bototildees um botatildeo principal (normalmente o da esquerda) e um

botatildeo secundaacuterio Muitos mouses tambeacutem tecircm uma roda entre os dois bototildees que permite

percorrer as telas de informaccedilotildees

Ponteiros do mouse

Agrave medida que vocecirc move o mouse com a matildeo um ponteiro na tela se move na mesma direccedilatildeo

(A aparecircncia do ponteiro pode mudar dependendo da sua posiccedilatildeo na tela) Quando quiser

selecionar um item aponte para ele e clique no botatildeo principal ou seja pressione-o e solte-o

Apontar e clicar com o mouse eacute a principal maneira de interagir com o computador Para mais

informaccedilotildees consulte Usando o mouse

Teclado

A finalidade principal do teclado eacute digitar texto no computador Ele possui teclas para letras e

nuacutemeros exatamente como em uma maacutequina de escrever A diferenccedila estaacute nas teclas especiais

As teclas de funccedilatildeo localizadas na linha superior executam funccedilotildees diferentes dependendo

de onde satildeo usadas

O teclado numeacuterico localizado agrave direita na maioria dos teclados permite inserir nuacutemeros

rapidamente

As teclas de navegaccedilatildeo como as teclas de seta permitem mover sua posiccedilatildeo dentro de

documentos ou paacuteginas da Web

Teclado

Vocecirc tambeacutem pode usar o teclado para executar muitas das mesmas tarefas que executa com

um mouse Para mais informaccedilotildees consulte Usando o teclado

Monitor

O monitor exibe informaccedilotildees em forma visual usando texto e elementos graacuteficos A parte do

monitor que exibe as informaccedilotildees eacute chamada tela Como a tela de uma televisatildeo a tela de um

computador pode mostrar imagens paradas ou em movimento

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3365

33

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Existem dois tipos baacutesicos de monitores CRT (tubo de raios catoacutedicos) e LCD (viacutedeo de cristal

liacutequido) Ambos produzem imagens niacutetidas mas os monitores LCD levam vantagem por serem

mais finos e mais leves

Monitor LCD (agrave esquerda) monitor CRT (agrave direita)

Impressora

Uma impressora transfere dados de um computador para o papel Vocecirc natildeo precisa de

impressora para usar o computador mas se tiver uma poderaacute imprimir emails cartotildees convites

anuacutencios e outros materiais Muitas pessoas tambeacutem preferem imprimir suas fotos em casa

Os dois principais tipos de impressora satildeo a jato de tinta e a laser As impressoras a jato de tinta

satildeo as mais populares para uso domeacutestico Elas podem imprimir em preto e branco ou em cores

e produzem fotos de alta qualidade quando usadas com papel especial As impressoras a laser

satildeo mais raacutepidas e mais adequadas para uso intenso

Impressora a jato de tinta (agrave esquerda) impressora a laser (agrave direita)

Alto-falantes

Os alto-falantes satildeo usados para tocar som Eles podem vir embutidos na unidade de sistema ou

ser conectados com cabos Satildeo eles que permitem ouvir muacutesica e efeitos de som no computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3465

34

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Alto-falantes do computador

Modem

Para conectar o computador agrave Internet vocecirc precisa de um modem um dispositivo que envia e

recebe informaccedilotildees do computador por linha telefocircnica ou cabo de alta velocidade Agraves vezes os

modems vecircm embutidos na unidade de sistema mas os de alta velocidade normalmente satildeo

componentes separados

Modem a cabo

O QUE Eacute O SOFTWARE

O Software eacute uma aplicaccedilatildeo ou programa do computador escrita numa determinadalinguagem interpretaacutevel por uma determinada maacutequina (o processador de um computador ou

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3565

35

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

outro equipamento) e que permite executar determinadas tarefas para as quais o software foi

projetado Estes programas satildeo compostos por uma sequecircncia de instruccedilotildees (os comandos) e de

declaraccedilotildees de dados as quais satildeo armazenaacuteveis num meio digital

Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por um

computador com o objetivo de executar tarefas especiacuteficas Tambeacutem pode ser definido como

os programas que comandam o funcionamento de um computador

Em um computador o software eacute classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer

instruccedilotildees para o hardware O hardware eacute toda a parte fiacutesica que constitui o computador por

exemplo a CPU a memoacuteria e os dispositivos de entrada e saiacuteda O software eacute constituiacutedo por

todos os programas que existem para um referido sistema quer sejam produzidos pelo proacuteprio

utente ou pelo fabricante do computador

O termo inglecircs software foi usado pela primeira vez em 1958 em um artigo escrito pelo cientistaamericano John Wilder Tukey Foi tambeacutem ele o responsaacutevel por introduzir o termo bit para

designar diacutegito binaacuterio

Os softwares podem ser classificados como

SOFTWARE DE SISTEMA

Geralmente dividido em SISTEMAS OPERACIONAIS e PROGRAMAS UTILITAacuteRIOS Para

comeccedilar os Sist Operacionais satildeo de grande importacircncia pois eles nos datildeo a opccedilatildeo de dizer ao

computador o que ele deve fazer Dois exemplos bastante conhecidos do nosso puacuteblico satildeoo Mac o Windows e o Linux Os Programas utilitaacuterios geralmente satildeo softwares de menor porte

com funccedilotildees mais especificas tipo Verificaccedilatildeo de Disco Coacutepias de Seguranccedila entre outros

SOFTWARE APLICATIVO

Neste tipo de software se enquadram todos aqueles programas que satildeo utilizados na execuccedilatildeo

de tarefas especiacuteficas Posso citar vaacuterios exemplos mas os mais comuns satildeo os processadores

de texto como o Word que servem para trabalhar com os mais diversos tipos de textos emitir

etiquetas e fazer formulaacuterios as planilhas eletrocircnicas como o Excel satildeo poderosas ferramentas

de caacutelculos que facilitam tanto aquele trabalho aacuterduo de matemaacutetica fazer graacuteficos com real

representaccedilatildeo dos dados eacute uma coisa muito boa pra quem precisa e por uacuteltimo o que muitos

usam mas natildeo sabem o nome ao certo que satildeo os Browsers ou Navegadores softwares usados

para navegar na Web dentre eles os mais conhecidos atualmente satildeo Windows Internet

Explorer Firefox Google Chrome Opera e Safaacuteri

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3665

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3765

37

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

hoje eles satildeo bastante usados em situaccedilotildees de treinamentos de pessoas para enfrentar casos no

seu dia-a-dia

SOFTWARE DE JOGOS

Geralmente satildeo softwares relacionados a entretenimento para proporcionar lazer e diversatildeo

Dispotildeem de muitos recursos interativos e existem de todos os tipos desde estrateacutegias ateacute

simulaccedilotildees reais de muitas coisas como corridas (Need for Speed) ateacute mesmo de vida como o

Second Life

SOFTWARES ABERTOS

Satildeo aqueles que permitem que o usuaacuterio produza com liberdade e criatividade se classificam

nessa categoria aqueles softwares de apresentaccedilotildees bancos de dados e vaacuterios outros

Para fixar

Descreva uma definiccedilatildeo para os tipos de softwares

Software de Sistema_____________________________________________________________

Software Aplicativo ______________________________________________________________

Software de Linguagem __________________________________________________________

Software abertos _______________________________________________________________

Capiacutetulo 4 - Conceitos Baacutesicos de Banco de Dados

Segundo Korth um banco de dados ldquoeacute uma coleccedilatildeo de dados inter -relacionados

representando informaccedilotildees sobre um domiacutenio especiacuteficordquo ou seja sempre que for possiacutevel

agrupar informaccedilotildees que se relacionam e tratam de um mesmo assunto posso dizer que tenho

um banco de dados

Podemos exemplificar situaccedilotildees claacutessicas como uma lista telefocircnica um cataacutelogo de CDs ou um

sistema de controle de RH de uma empresa

Jaacute um sistema de gerenciamento de banco de dados (SGBD) eacute um software que possui

recursos capazes de manipular as informaccedilotildees do banco de dados e interagir com o usuaacuterio

Exemplos de SGBDs satildeo Oracle SQL Server DB2 PostgreSQL MySQL o proacuteprio Access ouParadox entre outros

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3865

38

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Por uacuteltimo temos que conceituar um sistema de banco de dados como o conjunto de quatro

componentes baacutesicos dados hardware software e usuaacuterios Date conceituou que ldquosistema de

bancos de dados pode ser considerado como uma sala de arquivos eletrocircnicardquo A Figura 1 ilustra

os componentes de um sistema de banco de dados

Componentes de um sistema de banco de dados

Os objetivos de um sistema de banco de dados satildeo o de isolar o usuaacuterio dos detalhes

internos do banco de dados (promover a abstraccedilatildeo de dados) e promover a independecircncia dos

dados em relaccedilatildeo agraves aplicaccedilotildees ou seja tornar independente da aplicaccedilatildeo a estrateacutegia de

acesso e a forma de armazenamento

Abstraccedilatildeo de dados

O sistema de banco de dados deve garantir uma visatildeo totalmente abstrata do banco de

dados para o usuaacuterio ou seja para o usuaacuterio do banco de dados pouco importa qual unidade de

armazenamento estaacute sendo usada para guardar seus dados contanto que os mesmos estejam

disponiacuteveis no momento necessaacuterio

Esta abstraccedilatildeo se daacute em trecircs niacuteveis (Figura 2) Niacutevel de visatildeo do usuaacuterio as partes do banco de dados que o usuaacuterio tem acesso de

acordo com a necessidade individual de cada usuaacuterio ou grupo de usuaacuterios

Niacutevel conceitual define quais os dados que estatildeo armazenados e qual o relacionamento

entre eles

Niacutevel fiacutesico eacute o niacutevel mais baixo de abstraccedilatildeo em que define efetivamente de que maneira

os dados estatildeo armazenados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3965

39

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 2 Niacuteveis de abstraccedilatildeo

Projeto de banco de dados

Todo bom sistema de banco de dados deve apresentar um projeto que visa a organizaccedilatildeo das

informaccedilotildees e utilizaccedilatildeo de teacutecnicas para que o futuro sistema obtenha boa performance e

tambeacutem facilite infinitamente as manutenccedilotildees que venham a acontecer

O projeto de banco de dados se daacute em duas fases

Modelagem conceitual Projeto loacutegico

Estas duas etapas se referem a um sistema de banco de dados ainda natildeo implementado ou seja

que ainda natildeo exista um novo projeto Para os casos em que o banco de dados jaacute exista mas eacute

um sistema legado por exemplo ou um sistema muito antigo sem documentaccedilatildeo o processo de

projeto de banco de dados se daraacute atraveacutes da utilizaccedilatildeo de uma teacutecnica chamada de Engenharia

Reversa que seraacute visto em outra oportunidade

Modelo conceitual

Eacute a descriccedilatildeo do BD de maneira independente ao SGBD ou seja define quais os dados

que apareceratildeo no BD mas sem se importar com a implementaccedilatildeo que se daraacute ao BD Desta

forma haacute uma abstraccedilatildeo em niacutevel de SGBD

Uma das teacutecnicas mais utilizadas dentre os profissionais da aacuterea eacute a abordagem entidade-

relacionamento (ER) onde o modelo eacute representado graficamente atraveacutes do diagrama entidade-

relacionamento (DER) (Figura 3)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 10: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1065

10

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

computadores foi muito grande Surgem muitas linguagens de alto niacutevel e nasce agrave teleinformaacutetica

transmissatildeo de dados entre computadores atraveacutes de rede

Continuou-se o desenvolvimento do Circuito Integrado e a busca de se colocar cada vez

mais um maior nuacutemero de componentes em um chip

A Intel comeccedilou suas pesquisas nessa aacuterea em 1969 Os resultados foram vistos quando

em novembro de 1971 buscando atender ao pedido de uma empresa japonesa que precisava de

um circuito integrado especial a Intel elaborou o 4004 criado por Federico Faggin Ted Hoff

e Stanley Mazor primeiro microprocessador comercial

Internet

De 1969 a 1972 foi criada a Arpanet que deu iniacutecio a Internet (teleinformaacutetica) que conhecemos

hoje A rede entrou no ar em dezembro de 1969 no EUA Eles eram interligados atraveacutes de links

de 50 k criados usando linhas telefocircnicas dedicadas adaptadas para o uso de transmissatildeo de

dados

Em 1971 ocorre a transmissatildeo do primeiro e-mail realizada pela Universidade da Califoacuternia para

um computador na Stanford Research Institute com o texto ldquoLOGINrdquo mas chegou apenas LO

A Ethernet surgiu entre 1972 e 1973 dentro do PARC (o laboratoacuterio de desenvolvimento da Xerox

nos Estados Unidos) onde foi feito o primeiro teste de transmissatildeo de dados usando esse

padratildeo

Em 1974 surgiu o TCPIP que acabou se tornando o protocolo definitivo para uso

na ARPANET e mais tarde na Internet

QUINTA GERACcedilAtildeO DOS COMPUTADORES ndash (1980Atualmente)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1165

11

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Desde o iniacutecio da era dos microcomputadores o avanccedilo tem sido constante O computador

que se fabrica hoje dentro de alguns meses jaacute estaacute obsoleto

Atualmente o que vem surgindo satildeo inuacutemeras renovaccedilotildees com o objetivo de evoluir os sistemas

rdquoEmbora os paradigmas possam mudar as pesquisas normalmente evoluem baseadas em

resultados do passado que se constituem em fundamentos de um desenvolvimento posteriorhelliprdquo

Para Fixar

Escreva um breve resumo sobre o processo evolutivo dos computadores

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________ ___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

__________________________________________________________________

SOFTWARES

O QUE Eacute Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por

um computador com o objetivo de executar tarefas especiacuteficas Em um computador o software eacute

classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer instruccedilotildees para o hardware

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1265

12

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Diferentemente do que muitas pessoas imaginam o computador natildeo faz nada sozinho Ele

apenas processa uma seacuterie de informaccedilotildees inseridas pelo usuaacuterio para entatildeo fornecer os

resultados As informaccedilotildees inseridas e os resultados que recebemos precisam estar num formato

que noacutes humanos conseguimos entender Para facilitar essa comunicaccedilatildeo entre homem e

computador foram criados os softwares ou programas de computador Na realidade tudo que

fazemos com um computador eacute pela execuccedilatildeo desses programas

Um sistema operacional eacute um programa que atua como intermediaacuterio entre o usuaacuterio e o

hardware de um computador O propoacutesito de um sistema operacional eacute propiciar um ambiente no

qual o usuaacuterio possa executar outros programas de forma conveniente por esconder detalhes

internos de funcionamento e eficiecircncia por procurar gerenciar de forma justa os recursos do

sistema

Vimos que o sistema operacional interage diretamente com o hardware e com isso eacuteinfluenciado diretamente pela evoluccedilatildeo do mesmo Portanto a evoluccedilatildeo dos sistemas

operacionais estaacute em grande parte relacionada ao desenvolvimento de equipamentos cada vez

mais velozes compactos e de custos baixos e agrave necessidade de aproveitamento e controle

destes recursos

Assim ao falar sobre o histoacuterico dos sistemas operacionais estaremos recordando um

pouco a evoluccedilatildeo do hardware Devemos lembrar que as datas das fases da evoluccedilatildeo satildeo

aproximadasHISTOacuteRIA

Desde os tempos do computador programado por chaves e cabos ateacute o surgimento do

teclado e impressora de caracteres procurou-se ao longo do processo evolutivo do computador

tornar a sua utilizaccedilatildeo mais amigaacutevel precisa raacutepida e eficaz

Primeira geraccedilatildeo (1945-1955)

Vaacutelvulas e Paineacuteis de Programaccedilatildeo - No iniacutecio da Segunda Guerra Mundial surgiram os primeiros

computadores digitais formados por milhares de vaacutelvulas que ocupavam aacutereas enormes sendo

de funcionamento lento e duvidoso O ENIAC foi o primeiro computador digital de propoacutesito geral

Criado para a realizaccedilatildeo de caacutelculos baliacutesticos A programaccedilatildeo era feita em paineacuteis atraveacutes de

fios utilizando linguagem de maacutequina Natildeo existia o conceito de sistema operacional Outros

computadores foram construiacutedos nessa eacutepoca mas eram utilizados apenas em universidades e

oacutergatildeos militares

SEGUNDA GERACcedilAtildeO (1956-1965)

Transistores e Sistemas em Lote (batch)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1365

13

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

A criaccedilatildeo do transistor e das memoacuterias magneacuteticas contribuiu para o enorme avanccedilo dos

computadores da eacutepoca O transistor permitiu o aumento da velocidade e da confiabilidade do

processamento as memoacuterias magneacuteticas permitiram o acesso mais raacutepido aos dados maior

capacidade de armazenamento e computadores menores

Surgiram os primeiros sistemas operacionais para tentar automatizar as tarefas manuais

ateacute entatildeo realizadas e as primeiras linguagens de programaccedilatildeo como Assembly e Fortran Os

programas deixaram de ser feitos diretamente no hardware o que facilitou enormemente o

processo de desenvolvimento de programas Surgiu o processamento em batch em que um lote

(batch) de programas e de dados era submetido ao computador por vez

Terceira geraccedilatildeo (1966-1980)

Circuitos Integrados e Multiprogramaccedilatildeo

Por meio dos circuitos integrados e posteriormente dos microprocessadores foi possiacutevelviabilizar e difundir o uso de sistemas computacionais por empresas devido agrave diminuiccedilatildeo de seus

custos de aquisiccedilatildeo Houve um aumento no poder de processamento e diminuiccedilatildeo no tamanho

dos equipamentos

A evoluccedilatildeo dos processadores de entradasaiacuteda permitiu que enquanto um programa

esperasse por uma operaccedilatildeo de leituragravaccedilatildeo o processador executasse um outro programa

Para tal a memoacuteria foi dividida em particcedilotildees em que um programa esperava sua vez para ser

processado A essa teacutecnica de compartilhamento da memoacuteria principal e processador deu-se onome de multiprogramaccedilatildeo

QUARTA GERACcedilAtildeO (1981-1990)

Computadores Pessoais

Os mini e superminicomputadores se firmaram no mercado e os microcomputadores

ganharam um grande impulso Surgem as estaccedilotildees de trabalho (workstations) que apesar de

monousuaacuterias permitem que se executem diversas tarefas concorrentemente criando o conceito

de multitarefa

No final dos anos 80 os computadores tiveram um grande avanccedilo decorrente de aplicaccedilotildees que

exigiam um enorme volume de caacutelculos Para acelerar o processamento foram adicionados

outros processadores exigindo dos sistemas operacionais novos mecanismos de controle e

sincronismo Com o multiprocessamento foi possiacutevel a execuccedilatildeo de mais de um programa

simultaneamente ou ateacute de um mesmo programa por mais de um processador Foram

introduzidos processadores vetoriais e teacutecnicas de paralelismo de processamento fazendo com

que os computadores se tornassem ainda mais poderosos

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1465

14

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O uso das redes distribuiacutedas se difundiu por todo o mundo permitindo o acesso a outros

sistemas de computaccedilatildeo independentemente de cidade paiacutes e ateacute mesmo fabricante Os

softwares de rede passaram a estar intimamente relacionados com o sistema operacional de cada

maacutequina e surgem os sistemas operacionais de rede

QUINTA GERACcedilAtildeO (1991ATUALMENTE)

Houve grandes avanccedilos em termos de hardware software e telecomunicaccedilotildees como

consequecircncia da evoluccedilatildeo das aplicaccedilotildees que necessitavam cada vez mais de capacidade de

processamento e armazenamento de dados Sistemas especialistas sistemas multimiacutedia bancos

de dados distribuiacutedos inteligecircncia artificial e redes neurais satildeo apenas alguns exemplos da

necessidade cada vez maior de informaccedilatildeo e de capacidade de processamento O conceito de

processamento distribuiacutedo eacute explorado nos sistemas operacionais de forma que suas funccedilotildees

estejam espalhadas por vaacuterios processadores atraveacutes de redes de computadores A deacutecada de 90 foi definitiva para a consolidaccedilatildeo dos sistemas operacionais baseados em

interfaces graacuteficas

Atualmente temos as plataformas multicore (vaacuterios nuacutecleos) disponiacuteveis em computadores

pessoais e ateacute notebooks possibilitando cada vez mais a paralelizaccedilatildeo de aplicaccedilotildees e elevando

em muito o tempo de execuccedilatildeo dos programas Os fanaacuteticos pelos jogos de computador que o

digam

Os sistemas operacionais - satildeo parte fundamental dos computadores satildeo responsaacuteveis pororganizar os processos (programas) que estatildeo sendo executados pelo processador criando uma

fila de processos que garante que todos receberatildeo sua parcela de processamento

Para Fixar

Escreva um breve resumo sobre o processo evolutivo dos Softwares

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________ __________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1565

15

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

PRINCIacutePAIS SISTEMAS OPERACIONAIS

Principais SO que deram iniacutecio a era Windows MCs Linux e Unix

1987 ndash Andrew Tanenbaum um professor de computaccedilatildeo holandecircs desenvolve um sistema

operacional didaacutetico simplificado mas respeitando a API do UNIX que foi batizado como Minix

1987 ndash IBM e Microsoft apresentam a primeira versatildeo do OS2 um sistema multitarefa destinado

a substituir o MS-DOS e o Windows Mais tarde as duas empresas rompem a parceria a IBM

continua no OS2 e a Microsoft investe no ambiente Windows

1991 ndash Linus Torvalds um estudante de graduaccedilatildeo Finlandecircs inicia o desenvolvimento do Linux

lanccedilando na rede Usenet o nuacutecleo 001 logo abraccedilado por centenas de programadores ao redor

do mundo

1993 ndash a Microsoft lanccedila o Windows NT o primeiro sistema 32 bits da empresa

Capiacutetulo 2 ndash Banco de Dados

Banco de dados eacute um arquivo especial que armazena dados arrumados sob forma de

tabelas ou matrizes (em linhas e colunas) Quando um conjunto de informaccedilotildees possui muitasvariaacuteveis interligadas entre si eacute aconselhaacutevel que sejam armazenadas e trabalhadas em um

banco de dados Os bancos de dados fornecem uma seacuterie de funcionalidades que natildeo satildeo

encontradas em arquivos comuns ldquoBancos de dados satildeo coleccedilotildees de informaccedilotildees que se

relacionam de forma que crie um sentidordquo Satildeo de vital importacircncia para empresas e haacute duas

deacutecadas se tornaram a principal peccedila dos sistemas de informaccedilatildeo ldquoFonte Wikipeacutediardquo

Entatildeo um banco de dados eacute uma entidade na qual eacute possiacutevel armazenar dados de maneira

estruturada e com a menor redundacircncia possiacutevel Estes dados devem poder ser utilizadas porprogramas por usuaacuterios diferentes Assim a noccedilatildeo baacutesica de dados eacute acoplada geralmente a

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1665

16

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

uma rede a fim de poder pocircr conjuntamente estas informaccedilotildees daiacute o nome banco Fala-se

geralmente de sistema de informaccedilatildeo para designar toda a estrutura que reuacutene os meios

organizados para poder compartilhar dados

DADOS amp INFORMACcedilOtildeES

Muitos consideram dados e informaccedilotildees como palavras sinocircnimas mas na verdade natildeo satildeo

Para entender o que eacute um banco de dados eacute muito importante saber a diferenccedila entre essas duas

palavras

Dados satildeo fatos brutos em sua forma primaacuteria E muitas vezes os dados podem natildeo fazer

sentido sozinhos

Informaccedilotildees consistem no agrupamento de dados de forma organizada para fazer sentido

gerar conhecimento

Por exemplo o nuacutemero 2001 isoladamente faz algum sentido Natildeo Isso eacute um dado E se eu

dissesse ldquoAno do atentado terrorista agraves torres gecircmeas 2001Prime Agora faz sentido Isso eacute

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1765

17

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

uma informaccedilatildeo Um banco de dados eacute uma estrutura de dados organizada que permite a

extraccedilatildeo de informaccedilotildees

Metadados ndash Eacute todo dado relativo a outro dado eacute chamado de metadados No exemplo anterior

do ano 2001 o dado ldquoAno do atentado terrorista agraves torres gecircmeasrdquo eacute um metadado pois ele eacute um

dado sobre o dado ldquo2001rdquo Outro exemplo mais comum em banco de dados o campo telefone da

tabela cliente tem entre outros os seguinte metadados nome (telefone) tipo (texto) tamanho (30

caracteres) obrigatoriedade (natildeo) etc

Um banco de dados eacute formado por dado e metadados Sem os metadados natildeo seria

possiacutevel organizar e extrair informaccedilotildees de um banco de dados

Para Fixar

Dados - Em informaacutetica designa-se por dados os elementos de partida que servem de base

para o tratamento e sobre os quais o computador efetua as operaccedilotildees necessaacuterias agrave tarefa emquestatildeo

Os dados satildeo uma representaccedilatildeo dos fatos conceitos ou instruccedilotildees de uma maneira

normalizada que se adapte agrave comunicaccedilatildeo interpretaccedilatildeo e processamento pelo ser humano ou

atraveacutes de maacutequinas automaacuteticas

Os dados satildeo representados por siacutembolos como por exemplo as letras do alfabeto a b c

etc mas natildeo satildeo em si a informaccedilatildeo desejada

ExemploO I O C O M B - satildeo dados mas natildeo eacute informaccedilatildeo perceptiacutevel ao homem

A informaccedilatildeo natildeo eacute mais do que dados organizados e ordenados de forma uacutetil Isto eacute informaccedilatildeo

eacute o conhecimento produzido como resultado do processamento de dados

Se processarmos os dados que tiacutenhamos anteriormente entatildeo obtemos a informaccedilatildeo

O I O C O M B - Dados

- Processamento

C O M B O I O ndash Informaccedilatildeo

Para fixar

Escreva o significado de

Dados___________________________________________________________________

_________________________________________________________________________

Informaccedilatildeo_______________________________________________________________

_________________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1865

18

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Metadados_______________________________________________________________

_________________________________________________________________________

Banco de

dados___________________________________________________________________

_________________________________________________________________________

A histoacuteria dos bancos de dados

Hoje os bancos de dados satildeo essenciais para muitas empresas e estatildeo no coraccedilatildeo de

muitos sistemas computacionais Ter acesso raacutepido agraves informaccedilotildees eacute muito importante para a

correta tomada de decisotildees em um negoacutecio Se vocecirc pretende trabalhar com desenvolvimento de

softwares com certeza precisaraacute trabalhar com bancos de dados em algum momento Conhecer

a histoacuteria dos bancos de dados e como eles evoluiacuteram eacute muito importante para entender como os

bancos de dados mais comuns satildeo organizados Entatildeo como aconteceu a evoluccedilatildeo dos bancos

de dados

Antigamente as empresas armazenavam dados em fichas de papel que eram organizadas

em arquivos fiacutesicos atraveacutes de pastas Extrair informaccedilotildees e manter esses arquivos organizados

era uma tarefa muito custosa Aleacutem disso o acesso agrave informaccedilatildeo dependia da localizaccedilatildeo

geograacutefica dos arquivos Enfim esses arquivos fiacutesicos evoluiacuteram para arquivos digitais No iniacutecio

cada entidade (clientes funcionaacuterios produtos etc) era um arquivo de dados que eram

acompanhados de um ldquosoftware simplesrdquo para manipular os dados do arquivo esses softwares

permitiam realizar operaccedilotildees de cadastro alteraccedilatildeo exclusatildeo e consulta nos arquivos digitais De

fato melhorou bastante principalmente a tarefa de consulta de informaccedilotildees poreacutem os arquivos

digitais eram ainda uma versatildeo melhorada dos arquivos fiacutesicos

Mas as entidades precisavam relacionar-se por exemplo um produto eacute fornecido por

um fornecedor e com os arquivos digitais relacionaacute-las natildeo era uma tarefa muito trivial os

ldquosoftwares simplesrdquo para manipular os arquivos digitais comeccedilaram a ficar ldquocomplexosrdquo para

permitir os relacionamentos entre entidades Entatildeo na deacutecada de 60 a empresa IBM investiu

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1965

19

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

fortemente em pesquisas para solucionar estes problemas dos bancos de dados digitais

primitivos Vaacuterios modelos de bancos de dados surgiram nesta eacutepoca dentre eles os modelos

hieraacuterquicos e rede

Em junho de 1970 o pesquisador Edgar Frank ldquoTedrdquo Codd da IBM mudou a histoacuteria dos

bancos de dados apresentando o modelo relacional no artigo intitulado ldquoA Relational Model of

Data for Large Shared Data Banksrdquo (Um modelo relacional de dados para grandes bancos de

dados compartilhados) onde o autor apresentou uma forma de usuaacuterios sem conhecimento

teacutecnico armazenarem e extraiacuterem grandes quantidades de informaccedilotildees de um banco de dados

Esse artigo foi o grande impulso para a evoluccedilatildeo dos bancos de dados a partir do artigo de ldquoTedrdquo

Codd que os cientistas aprofundaram a ideia de criar o modelo de banco de dados relacional

BANCO DE DADOS RELACIONAL

Apesar de ter sido o marco dos bancos de dados relacionais o artigo de Codd natildeo foimuito explorado no iniacutecio Soacute no final da deacutecada de 70 que foi desenvolvido um sistema baseado

nas ideias do cientista o ldquoSistema Rrdquo Junto com esse sistema foi criado a linguagem de consulta

estruturada (SQL ndash Structured Query Language) que se tornou a linguagem padratildeo para bancos

de dados relacionais Embora tenha contribuiacutedo para a evoluccedilatildeo dos bancos de dados

relacionais o ldquoSystem Rrdquo natildeo foi muito bem sucedido comercialmente mas os sistemas de banco

de dados seguintes foram baseados nele

Nos anos 80 surgiram outros bancos de dados a Oracle apresentou o Oracle 2 e a IBMo SQLDS (que se tornou DB2) ambos sistemas comerciais de bancos de dados Na sequencia

vieram SQL Server MySQL DBase III Paradox etchellip

BANCOS DE DADOS HOJE

Atualmente existem vaacuterios modelos de bancos de dados tais como orientado a objetos

orientado a documentos etc Mas o mais comum ainda eacute o banco de dados relacional A decisatildeo

entre qual modelo de banco de dados utilizarem baseia-se no tipo de dados que vocecirc pretende

armazenar Por exemplo se vocecirc for armazenar uma grande quantidade de dados em um modelo

pequeno (imagine um banco de dados para o twitter) eacute mais indicado utilizar um banco de dados

orientado a documentos a um banco de dados relacional Muitas questotildees envolvem essa

decisatildeo mas natildeo eacute uma questatildeo de superioridade entre uma ou outra tecnologia todas tecircm proacutes

e contras e satildeo mais indicadas ou natildeo para cada problema

Para fixar

Faccedila um breve resumo sobre o surgimos dos bancos de dados

______________________________________________________________________________

______________________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2065

20

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

Dados amp Informaccedilatildeo

A informaccedilatildeo eacute encarada atualmente como um dos recursos mais importantes de uma

organizaccedilatildeo contribuindo decisivamente para a sua maior ou menor competitividade De fato

com o aumento da concorrecircncia tornou-se vital melhorar as capacidades de decisatildeo a todos osniacuteveis

Hoje mais que nunca a tomada de decisatildeo nas organizaccedilotildees eacute um processo complexo

dada a qualidade de informaccedilatildeo em jogo a sua complexidade e a frequecircncia com que se altera

No entanto para que possa ser utilizada com um apoio eficaz agrave tomada de decisatildeo a informaccedilatildeo

soacute tecircm valor se verificarem simultaneamente algumas condiccedilotildees

ATUALIDADE ndash O valor da informaccedilatildeo dependeraacute em grande parte da sua atualidade

Dado o dinamismo verificado em todos os setores da sociedade em geral e do ambiente

empresarial em particular o periacuteodo de validade da informaccedilatildeo eacute cada vez mais curto Torna-se

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2165

21

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

necessaacuterio dispor de fontes de informaccedilatildeo que acompanhem continuamente essas modificaccedilotildees

Soacute com base em informaccedilatildeo atualizada se podem tomar decisotildees acertadas

CORRECcedilAtildeO ndash Natildeo basta que a informaccedilatildeo seja atual eacute tambeacutem necessaacuterio que na

medida do possiacutevel seja rigorosa Soacute com informaccedilatildeo correta se pode decidir com confianccedila

RELEVAcircNCIA ndash Dado o grande de volume de informaccedilatildeo envolvida o processo de tomada

de decisatildeo ao contraacuterio de ser facilitado pode ser dificultado pelo excesso de informaccedilatildeo A

informaccedilatildeo deve ser devidamente filtrada de tal forma que apenas aquela com relevacircncia para

cada situaccedilatildeo seja considerada

DISPONIBILIDADE ndash Ainda que a informaccedilatildeo verifique os trecircs requisitos anteriores a sua

utilidades poderaacute ser posta em causa se natildeo puder ser disponibilizada de forma imediata no

momento em que eacute solicitada As decisotildees muito ponderadas com o longo periacuteodo de gestaccedilatildeo

satildeo cada vez mais situaccedilotildees do passado Hoje dadas as caracteriacutesticas do meio envolvente oprocesso de tomada de decisatildeo tem que ser quase instantacircneo Para isso a informaccedilatildeo tem que

ser disponibilizada rapidamente caso contraacuterio deixa de ser uacutetil

LEGIBILIDADE - Esta condiccedilatildeo apesar de apresentada em uacuteltimo lugar natildeo eacute por isso

menos importante A informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada

De fato de nada vale que a informaccedilatildeo seja atual precisa relevante e disponibilizada em

tempo oportuno se natildeo puder ser entendida A forma como eacute disponibilizada tem tambeacutem grande

importacircncia informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada A forma como eacutedisponibilizada tem tambeacutem grande importacircncia

Quanto aos requisitos de atualidade e correccedilatildeo da informaccedilatildeo para que esta possa ser

correta e atual os dados de onde eacute derivada tecircm forccedilosamente que ser precisos e atualizados

Quanto aos requisitos de relevacircncia disponibilidade e legibilidade da informaccedilatildeo estes tecircm mais

a ver com os meios utilizados para o processamento dos dados

Como eacute que a informaccedilatildeo eacute organizada

A organizaccedilatildeo da informaccedilatildeo eacute efetuada de acordo com criteacuterios distintos como

Hierarquia dos seus componentes

O tipo de assunto a que se refere

Forma de armazenamento

Quanto agrave HIERARQUIA DOS COMPONENTES DA INFORMACcedilAtildeO esta eacute organizada em

Caracteres Campos Registros Ficheiros Caracteres - podem ser numeacutericos alfabeacuteticos ou

sinais de pontuaccedilatildeo Campos - satildeo conjuntos de caracteres que identificam um componente de

um registo Registos - satildeo agrupamentos de campos descritivos de uma realidade Ficheiros - satildeo

conjuntos de registos cuja informaccedilatildeo eacute estruturalmente analoacutegica

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2265

22

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Quanto AO TIPO DE ASSUNTO a que se refere agrave informaccedilatildeo

Esta pode ser como que etiquetada de modo a tornar faacutecil a sua procura e a evitar perdas

de tempo

Quando a informaccedilatildeo estaacute armazenada em ficheiros estes indicam o seu tipo atraveacutes de

uma extensatildeo ao nome do ficheiro

Algumas das extensotildees mais comuns satildeo

- COM ficheiro de comandos - BACK backup ou coacutepias de seguranccedila- EXE executaacuteveis - SYS ficheiros de sistema

- BAT processamento batch - XLS folha de caacutelculo provenientes do Excel

- TXT texto no formato ASCII - PPT apresentaccedilotildees provenientes do PowerPoint

- PAS programas em Linguagem Pascal - MBD base de dados provenientes do Access

- C programas em Linguagem C - DOC documentos provenientes de um processador de

texto

Quanto Agrave FORMA DE ARMAZENAMENTO da informaccedilatildeoRelativamente ao armazenamento por exemplo no disco riacutegido do computador a

informaccedilatildeo eacute organizada em diretorias cujo nome revela o tipo de ficheiros que aiacute se encontram

podendo cada diretorias conter diversas subdiretorias

Organizaccedilatildeo dos dados num Computador

Os dados que fornecemos a um computador para processar podem ser de trecircs tipos

quantitativos classificativos referenciais

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2365

23

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Dados quantitativos - satildeo os que exprimem quantidades e por isso normalmente servem

de base para caacutelculos aritmeacuteticos Exemplo a ficha escolar as notas do periacuteodo as faltas o total

das faltas

bull Dados classificativos - satildeo os que descrevem ou especificam os elementos envolvidos e

quantificados Normalmente servem de complemento aos dados quantitativos identificando

pessoas objetos situaccedilotildees etc Natildeo servem portanto para elementos de caacutelculo Exemplo a

ficha escolar o nome do aluno o nome da disciplina o nome do professor

bull Dados referenciais - satildeo dados que permitem controlar e referenciar os elementos

tratados Exemplo a ficha escolar o ano letivo o nuacutemero do aluno a turma

Para fixar

Escreva de forma resumida como podemos organizar os dados

_________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

Tipos de Operaccedilotildees realizadas sobre os dados

O tipo de operaccedilotildees efetuadas depende dos objetivos do processamento e igualmente dostipos de dados nele envolvidos pois o computador pode processar dados numeacutericos ou natildeo

numeacutericos Assim temos como operaccedilotildees possiacuteveis num processamento

bull Operaccedilotildees aritmeacuteticas - satildeo efetuadas apenas sobre dados numeacutericos e satildeo

basicamente constituiacutedas por somas subtraccedilotildees multiplicaccedilotildees divisotildees e outras similares

bull Operaccedilotildees loacutegicas - satildeo efetuadas sobre dados numeacutericos ou natildeo numeacutericos Estas

operaccedilotildees satildeo tambeacutem por vezes designadas por operaccedilotildees de comparaccedilatildeo

bull Operaccedilotildees de movimentaccedilatildeo interna - satildeo efetuadas sobre qualquer tipo de dados e

consistem na coacutepia e mudanccedila de localizaccedilatildeo interna dos dados na memoacuteria do computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2465

24

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Operaccedilatildeo de InputOutput - satildeo as operaccedilotildees que envolvem os oacutergatildeos de entrada e

saiacuteda permitindo a comunicaccedilatildeo entre o operador e a maacutequina

Funccedilotildees do processamento de dados

Considera-se como processamento de dados o conjunto de todas as operaccedilotildees efetuadas desde

a entrada dos dados ateacute agrave saiacuteda da informaccedilatildeo Todas estas operaccedilotildees de vaacuterios tipos satildeo

normalmente associadas a seis funccedilotildees do processamento de dados input ordenaccedilatildeo

processamento armazenamento output e controle

bull Input - fase de seleccedilatildeo e aquisiccedilatildeo dos dados pelo computador

bull Ordenaccedilatildeo - esta eacute uma funccedilatildeo auxiliar O seu objetivo eacute dispor os dados de uma forma

organizada (ordenada) de modo a facilitar o seu tratamento Se os dados se mantiverem

ordenados segundo um determinado criteacuterio preacute-definido a sua pesquisa eacute mais faacutecil o que faz

aumentar a velocidade do processamento

bull Processamento - considera-se processamento ao conjunto de todas as operaccedilotildees

efetuadas internamente pelo computador na manipulaccedilatildeo dos dados

bull Armazenamento - esta eacute uma funccedilatildeo muito importante que permite posteriormente

analisar as etapas e os resultados do processamento

bull Output - eacute a obtenccedilatildeo de resultados sob a forma de informaccedilatildeo significativa para as

pessoas a quem se destina

bull Controle - a sua finalidade eacute detectar corrigir e eliminar possiacuteveis erros ou afastamentosem relaccedilatildeo aos objetivos inicialmente traccedilados

Utilidade de um banco de dados

Um banco de dados permite pocircr dados agrave disposiccedilatildeo de usuaacuterios para uma consulta uma

introduccedilatildeo ou uma atualizaccedilatildeo assegurando-se dos direitos atribuiacutedos a estes uacuteltimos Isso eacute

ainda mais uacutetil quando os dados informaacuteticos satildeo cada vez mais numerosos

Um banco de dados pode ser local quer dizer utilizaacutevel em uma maacutequina por um usuaacuterio

ou repartida quer dizer que as informaccedilotildees satildeo armazenadas em maacutequinas distantes eacessiacuteveis por rede A vantagem essencial da utilizaccedilatildeo dos bancos de dados eacute a possibilidade

de poder ser acessada por vaacuterios usuaacuterios simultaneamente

A gestatildeo dos bancos de dados

A fim de poder controlar os dados bem como os usuaacuterios a necessidade de um sistema de

gestatildeo fez-se sentir rapidamente A gestatildeo do banco de dados faz-se graccedilas a um sistema

chamado SGBD (sistema de gestatildeo de bancos de dados) ou em inglecircs DBMS (Database

managment system) O SGBD eacute um conjunto de serviccedilos (aplicaccedilotildees software) que permitem

gerenciar os bancos de dados quer dizer

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2565

25

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Permitir o acesso aos dados de maneira simples

Autorizar um acesso agraves informaccedilotildees a muacuteltiplos usuaacuterios

Manipular os dados presentes no banco de dados (inserccedilatildeo supressatildeo modificaccedilatildeo)

O SGBD pode decompor-se em trecircs subsistemas

O sistema de gestatildeo de arquivos permite o armazenamento das informaccedilotildees num suporte

fiacutesico

O SGBD interno gerencia a emissatildeo das informaccedilotildees

O SGBD externo representa a interface com o usuaacuterio

Bancos de dados satildeo conjuntos de dados com uma estrutura regular que organizam

informaccedilatildeo Um banco de dados normalmente agrupa informaccedilotildees utilizadas para um mesmo fim

O modelo de dados mais adotado hoje em dia eacute o modelo relacional onde as estruturas

tecircm a forma de tabelas compostas por linhas e colunas

Resumindo um banco de dados eacute uma coleccedilatildeo de dados relacionados Entende-se por

dado toda a informaccedilatildeo que pode ser armazenada e que apresenta algum significado impliacutecito

dentro do contexto ao qual ele se aplica Por exemplo num sistema bancaacuterio uma pessoa eacuteidentificada pelo seu cpf(cliente) Em um sistema escolar a pessoa eacute identificada pelo seu nuacutemero

de matriacutecula(aluno) Aleacutem disso os dados que seratildeo armazenados em cada situaccedilatildeo podem

diferir consideravelmente

Atividades

1) Onde utilizar um banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2665

26

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2) Como funciona um sistema gerenciador de banco de dados

3) Como funciona o modelo relacional

Modelo Relacional

O modelo relacional eacute uma teoria matemaacutetica desenvolvida por Edgar Frank Codd para

descrever como as bases de dados devem funcionar Embora esta teoria seja a base para o

software de bases de dados relacionais muito poucos sistemas de gestatildeo de bases de dados

seguem o modelo de forma restrita e todos tecircm funcionalidades que violam a teoria desta forma

variando a complexidade e o poder A discussatildeo se esses bancos de dados merecem ser

chamados de relacional ficou esgotada com tempo com a evoluccedilatildeo dos bancos existentes

De acordo com a arquitetura ANSI SPARC em trecircs niacuteveis os Bancos de dados

relacionais consistem de trecircs componentes

bull uma coleccedilatildeo de estruturas de dados formalmente chamadas de relaccedilotildees ou

informalmente tabelas compondo o niacutevel conceitual

bull uma coleccedilatildeo dos operadores a aacutelgebra e o caacutelculo relacionais que constituem a base da

linguagem SQL

bull uma coleccedilatildeo de restriccedilotildees da integridade definindo o conjunto consistente de estados de

base de dados e de alteraccedilotildees de estados As restriccedilotildees de integridade podem ser de quatro

tipos

bull domiacutenio (ou tipo de dados) bull atributo

bull restriccedilotildees de base de dados

De acordo com o Princiacutepio de Informaccedilatildeo toda informaccedilatildeo tem de ser representada como dados

qualquer tipo de atributo representa relaccedilotildees entre conjuntos de dados

Nos bancos de dados relacionais os relacionamentos entre as tabelas natildeo satildeo codificados

explicitamente na sua definiccedilatildeo Em vez disso se fazem implicitamente pela presenccedila de

atributos chave As bases de dados relacionais permitem aos utilizadores (incluindo

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2765

27

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

programadores) escreverem consultas (queries) reorganizando e utilizando os dados de forma

flexiacutevel e natildeo necessariamente antecipada pelos projetistas originais

Esta flexibilidade eacute especialmente importante em bases de dados que podem ser utilizadas

durante deacutecadas tornando as bases de dados relacionais muito populares no meio comercial

Um dos pontos fortes do modelo relacional de banco de dados eacute a possibilidade de

definiccedilatildeo de um conjunto de restriccedilotildees de integridade Estas definem os conjuntos de estados e

mudanccedilas de estado consistentes do banco de dados determinando os valores que podem e os

que natildeo podem ser armazenados

Aplicaccedilotildees de bancos de dados

Bancos de dados satildeo usados em muitas aplicaccedilotildees enquanto atravessando virtualmente a

gama inteira de software de computador Bancos de dados eacute o meacutetodo preferido de

armazenamento para aplicaccedilotildees multiusuaacuterias grandes onde a coordenaccedilatildeo entre muitosusuaacuterios eacute necessaacuteria Ateacute mesmo usuaacuterios individuais os acham convenientes entretanto e

muitos programas de correio eletrocircnico e os organizadores pessoais estatildeo baseados em

tecnologia de banco de dados standard

Aplicativo de Banco de Dados

Um aplicativo de banco de dados eacute um tipo de software exclusivo para gerenciar um banco

de dados Aplicativos de banco de dados abrangem uma vasta variedade de necessidades e

objetivos de pequenas ferramentas como uma agenda ateacute complexos sistemas empresariaispara desempenhar tarefas como a contabilidade

O termo Aplicativo de Banco de dados usualmente se refere a softwares que oferecem

uma interface para o banco de dados Exemplos de aplicativos de banco de dados satildeo Microsoft

Visual FoxPro Microsoft Access dBASE FileMaker (em certa medida) HyperCard MySQL

PostgreSQL Microsoft SQL Server e Oracle

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2865

28

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Capiacutetulo 3 - HARDWARE E SOFTWARE

O QUE Eacute O HARDWARE

No acircmbito da informaacutetica eacute dada a designaccedilatildeo de hardware a todos os componentes

fiacutesicos que fazem parte de um sistema informaacutetico incluiacutedo toda a parte fiacutesica de um computador

(nomeadamente os processadores motherbord disco riacutegido placas de som placas de viacutedeo

memoacuterias etc) e todos os perifeacutericos (tais como teclados mouse monitores impressoras

scanners modems entre outros)

Peccedilas de um computador

Se vocecirc usa um computador desktop jaacute deve saber que natildeo existe uma parte uacutenica

chamada computador Um computador eacute na verdade um sistema de muitas partes funcionando

em conjunto As partes fiacutesicas que vocecirc pode ver e tocar satildeo denominadas

coletivamente hardware (O software por outro lado se refere agraves instruccedilotildees ou programas que

dizem ao hardware o que fazer)

A ilustraccedilatildeo a seguir mostra os dispositivos de hardware mais comuns em um sistema de

computador desktop Seu sistema pode ter uma aparecircncia um pouco diferente mas

provavelmente possui a maioria destas peccedilas Um computador laptop possui peccedilas semelhantes

mas as combina em um uacutenico pacote do tamanho de um caderno

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2965

29

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Sistema de computador desktop

Unidade de sistema

A unidade de sistema (Gabinete) eacute o nuacutecleo de um sistema de computador Normalmente

eacute uma caixa retangular colocada sobre a mesa ou embaixo dela Dentro dessa caixa estatildeo os

componentes eletrocircnicos que processam as informaccedilotildees O mais importante desses

componentes eacute a CPU (unidade de processamento central) ou microprocessador que atua como

o ceacuterebro do computador Outro componente eacute a memoacuteria RAM que armazena

temporariamente informaccedilotildees utilizadas pela CPU enquanto o computador estaacute ligado As

informaccedilotildees gravadas na RAM satildeo apagadas quando o computador eacute desligado

Quase todas as outras partes do computador se conectam agrave unidade de sistema por meio

de cabos Os cabos satildeo conectados aportas (aberturas) especiacuteficas geralmente na parte traseira

da unidade de sistema O hardware que natildeo faz parte da unidade de sistema eacute

chamado dispositivo perifeacuterico ou simplesmente dispositivo

Unidade de sistema

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3065

30

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Armazenamento

O computador possui uma ou mais unidades de disco ou seja dispositivos que armazenam

informaccedilotildees em um disco de plaacutestico ou de metal O disco preserva as informaccedilotildees mesmo

quando o computador estaacute desligado

Unidade de disco riacutegido

A unidade de disco riacutegido do computador armazena informaccedilotildees em um disco riacutegido que eacute um

prato riacutegido ou pilha de pratos com uma superfiacutecie magneacutetica Como os discos riacutegidos podem

reter uma grande quantidade de informaccedilotildees normalmente eles funcionam como principal meio

de armazenamento do computador guardando praticamente todos os programas e arquivos Em

geral a unidade de disco riacutegido fica localizada dentro da unidade de sistema

Unidade de disco riacutegidoUnidades de CD e DVD

Hoje em dia quase todos os computadores vecircm equipados com uma unidade de CD ou DVD

geralmente localizada na frente da unidade de sistema As unidades de CD usam lasers para ler

(recuperar) dados de um CD Muitas delas tambeacutem podem gravar dados em CDs Se vocecirc tiver

uma unidade de disco gravaacutevel poderaacute armazenar coacutepias de seus arquivos em CDs vazios A

unidade de CD tambeacutem serve para tocar CDs de muacutesica no computador

CD

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3165

31

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

As unidades de DVD fazem o mesmo que as unidades de CD e tambeacutem lecircem DVDs Se vocecirc

tiver uma unidade de DVD poderaacute ver filmes no computador Muitas unidades de DVD podem

gravar dados em DVDs vazios

Dica

Se vocecirc tiver uma unidade de CD ou DVD gravaacutevel faccedila backup (copie) periodicamente de seus

arquivos importantes em CDs ou DVDs Dessa forma caso venha a ocorrer alguma falha no disco

riacutegido vocecirc natildeo perderaacute os dados

Unidade de disquete

As unidades de disquete armazenam informaccedilotildees em discos tambeacutem chamados discos

flexiacuteveis ou disquetes Comparado a CDs e DVDs os disquetes podem armazenar apenas uma

pequena quantidade de dados Eles tambeacutem recuperam informaccedilotildees de forma mais lenta e satildeo

mais vulneraacuteveis a danos Por esses motivos as unidades de disquete satildeo cada vez menosusadas embora ainda sejam incluiacutedas em alguns computadores

Disquete

Por que estes discos satildeo chamados de disquetes Apesar de a parte externa ser composta de

plaacutestico riacutegido isso eacute apenas a capa O interior do disco eacute feito de um material de vinil fino e

flexiacutevel

Mouse

Mouse eacute um pequeno dispositivo usado para apontar e selecionar itens na tela do computador

Embora existam mouses de vaacuterias formas o modelo mais comum se assemelha a um rato (como

diz o nome em inglecircs) Ele eacute pequeno e alongado sendo conectado agrave unidade de sistema por um

cabo comprido que faz lembrar uma cauda Alguns mouses mais novos satildeo sem fio

Mouse

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3265

32

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O mouse geralmente possui dois bototildees um botatildeo principal (normalmente o da esquerda) e um

botatildeo secundaacuterio Muitos mouses tambeacutem tecircm uma roda entre os dois bototildees que permite

percorrer as telas de informaccedilotildees

Ponteiros do mouse

Agrave medida que vocecirc move o mouse com a matildeo um ponteiro na tela se move na mesma direccedilatildeo

(A aparecircncia do ponteiro pode mudar dependendo da sua posiccedilatildeo na tela) Quando quiser

selecionar um item aponte para ele e clique no botatildeo principal ou seja pressione-o e solte-o

Apontar e clicar com o mouse eacute a principal maneira de interagir com o computador Para mais

informaccedilotildees consulte Usando o mouse

Teclado

A finalidade principal do teclado eacute digitar texto no computador Ele possui teclas para letras e

nuacutemeros exatamente como em uma maacutequina de escrever A diferenccedila estaacute nas teclas especiais

As teclas de funccedilatildeo localizadas na linha superior executam funccedilotildees diferentes dependendo

de onde satildeo usadas

O teclado numeacuterico localizado agrave direita na maioria dos teclados permite inserir nuacutemeros

rapidamente

As teclas de navegaccedilatildeo como as teclas de seta permitem mover sua posiccedilatildeo dentro de

documentos ou paacuteginas da Web

Teclado

Vocecirc tambeacutem pode usar o teclado para executar muitas das mesmas tarefas que executa com

um mouse Para mais informaccedilotildees consulte Usando o teclado

Monitor

O monitor exibe informaccedilotildees em forma visual usando texto e elementos graacuteficos A parte do

monitor que exibe as informaccedilotildees eacute chamada tela Como a tela de uma televisatildeo a tela de um

computador pode mostrar imagens paradas ou em movimento

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3365

33

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Existem dois tipos baacutesicos de monitores CRT (tubo de raios catoacutedicos) e LCD (viacutedeo de cristal

liacutequido) Ambos produzem imagens niacutetidas mas os monitores LCD levam vantagem por serem

mais finos e mais leves

Monitor LCD (agrave esquerda) monitor CRT (agrave direita)

Impressora

Uma impressora transfere dados de um computador para o papel Vocecirc natildeo precisa de

impressora para usar o computador mas se tiver uma poderaacute imprimir emails cartotildees convites

anuacutencios e outros materiais Muitas pessoas tambeacutem preferem imprimir suas fotos em casa

Os dois principais tipos de impressora satildeo a jato de tinta e a laser As impressoras a jato de tinta

satildeo as mais populares para uso domeacutestico Elas podem imprimir em preto e branco ou em cores

e produzem fotos de alta qualidade quando usadas com papel especial As impressoras a laser

satildeo mais raacutepidas e mais adequadas para uso intenso

Impressora a jato de tinta (agrave esquerda) impressora a laser (agrave direita)

Alto-falantes

Os alto-falantes satildeo usados para tocar som Eles podem vir embutidos na unidade de sistema ou

ser conectados com cabos Satildeo eles que permitem ouvir muacutesica e efeitos de som no computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3465

34

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Alto-falantes do computador

Modem

Para conectar o computador agrave Internet vocecirc precisa de um modem um dispositivo que envia e

recebe informaccedilotildees do computador por linha telefocircnica ou cabo de alta velocidade Agraves vezes os

modems vecircm embutidos na unidade de sistema mas os de alta velocidade normalmente satildeo

componentes separados

Modem a cabo

O QUE Eacute O SOFTWARE

O Software eacute uma aplicaccedilatildeo ou programa do computador escrita numa determinadalinguagem interpretaacutevel por uma determinada maacutequina (o processador de um computador ou

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3565

35

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

outro equipamento) e que permite executar determinadas tarefas para as quais o software foi

projetado Estes programas satildeo compostos por uma sequecircncia de instruccedilotildees (os comandos) e de

declaraccedilotildees de dados as quais satildeo armazenaacuteveis num meio digital

Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por um

computador com o objetivo de executar tarefas especiacuteficas Tambeacutem pode ser definido como

os programas que comandam o funcionamento de um computador

Em um computador o software eacute classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer

instruccedilotildees para o hardware O hardware eacute toda a parte fiacutesica que constitui o computador por

exemplo a CPU a memoacuteria e os dispositivos de entrada e saiacuteda O software eacute constituiacutedo por

todos os programas que existem para um referido sistema quer sejam produzidos pelo proacuteprio

utente ou pelo fabricante do computador

O termo inglecircs software foi usado pela primeira vez em 1958 em um artigo escrito pelo cientistaamericano John Wilder Tukey Foi tambeacutem ele o responsaacutevel por introduzir o termo bit para

designar diacutegito binaacuterio

Os softwares podem ser classificados como

SOFTWARE DE SISTEMA

Geralmente dividido em SISTEMAS OPERACIONAIS e PROGRAMAS UTILITAacuteRIOS Para

comeccedilar os Sist Operacionais satildeo de grande importacircncia pois eles nos datildeo a opccedilatildeo de dizer ao

computador o que ele deve fazer Dois exemplos bastante conhecidos do nosso puacuteblico satildeoo Mac o Windows e o Linux Os Programas utilitaacuterios geralmente satildeo softwares de menor porte

com funccedilotildees mais especificas tipo Verificaccedilatildeo de Disco Coacutepias de Seguranccedila entre outros

SOFTWARE APLICATIVO

Neste tipo de software se enquadram todos aqueles programas que satildeo utilizados na execuccedilatildeo

de tarefas especiacuteficas Posso citar vaacuterios exemplos mas os mais comuns satildeo os processadores

de texto como o Word que servem para trabalhar com os mais diversos tipos de textos emitir

etiquetas e fazer formulaacuterios as planilhas eletrocircnicas como o Excel satildeo poderosas ferramentas

de caacutelculos que facilitam tanto aquele trabalho aacuterduo de matemaacutetica fazer graacuteficos com real

representaccedilatildeo dos dados eacute uma coisa muito boa pra quem precisa e por uacuteltimo o que muitos

usam mas natildeo sabem o nome ao certo que satildeo os Browsers ou Navegadores softwares usados

para navegar na Web dentre eles os mais conhecidos atualmente satildeo Windows Internet

Explorer Firefox Google Chrome Opera e Safaacuteri

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3665

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3765

37

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

hoje eles satildeo bastante usados em situaccedilotildees de treinamentos de pessoas para enfrentar casos no

seu dia-a-dia

SOFTWARE DE JOGOS

Geralmente satildeo softwares relacionados a entretenimento para proporcionar lazer e diversatildeo

Dispotildeem de muitos recursos interativos e existem de todos os tipos desde estrateacutegias ateacute

simulaccedilotildees reais de muitas coisas como corridas (Need for Speed) ateacute mesmo de vida como o

Second Life

SOFTWARES ABERTOS

Satildeo aqueles que permitem que o usuaacuterio produza com liberdade e criatividade se classificam

nessa categoria aqueles softwares de apresentaccedilotildees bancos de dados e vaacuterios outros

Para fixar

Descreva uma definiccedilatildeo para os tipos de softwares

Software de Sistema_____________________________________________________________

Software Aplicativo ______________________________________________________________

Software de Linguagem __________________________________________________________

Software abertos _______________________________________________________________

Capiacutetulo 4 - Conceitos Baacutesicos de Banco de Dados

Segundo Korth um banco de dados ldquoeacute uma coleccedilatildeo de dados inter -relacionados

representando informaccedilotildees sobre um domiacutenio especiacuteficordquo ou seja sempre que for possiacutevel

agrupar informaccedilotildees que se relacionam e tratam de um mesmo assunto posso dizer que tenho

um banco de dados

Podemos exemplificar situaccedilotildees claacutessicas como uma lista telefocircnica um cataacutelogo de CDs ou um

sistema de controle de RH de uma empresa

Jaacute um sistema de gerenciamento de banco de dados (SGBD) eacute um software que possui

recursos capazes de manipular as informaccedilotildees do banco de dados e interagir com o usuaacuterio

Exemplos de SGBDs satildeo Oracle SQL Server DB2 PostgreSQL MySQL o proacuteprio Access ouParadox entre outros

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3865

38

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Por uacuteltimo temos que conceituar um sistema de banco de dados como o conjunto de quatro

componentes baacutesicos dados hardware software e usuaacuterios Date conceituou que ldquosistema de

bancos de dados pode ser considerado como uma sala de arquivos eletrocircnicardquo A Figura 1 ilustra

os componentes de um sistema de banco de dados

Componentes de um sistema de banco de dados

Os objetivos de um sistema de banco de dados satildeo o de isolar o usuaacuterio dos detalhes

internos do banco de dados (promover a abstraccedilatildeo de dados) e promover a independecircncia dos

dados em relaccedilatildeo agraves aplicaccedilotildees ou seja tornar independente da aplicaccedilatildeo a estrateacutegia de

acesso e a forma de armazenamento

Abstraccedilatildeo de dados

O sistema de banco de dados deve garantir uma visatildeo totalmente abstrata do banco de

dados para o usuaacuterio ou seja para o usuaacuterio do banco de dados pouco importa qual unidade de

armazenamento estaacute sendo usada para guardar seus dados contanto que os mesmos estejam

disponiacuteveis no momento necessaacuterio

Esta abstraccedilatildeo se daacute em trecircs niacuteveis (Figura 2) Niacutevel de visatildeo do usuaacuterio as partes do banco de dados que o usuaacuterio tem acesso de

acordo com a necessidade individual de cada usuaacuterio ou grupo de usuaacuterios

Niacutevel conceitual define quais os dados que estatildeo armazenados e qual o relacionamento

entre eles

Niacutevel fiacutesico eacute o niacutevel mais baixo de abstraccedilatildeo em que define efetivamente de que maneira

os dados estatildeo armazenados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3965

39

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 2 Niacuteveis de abstraccedilatildeo

Projeto de banco de dados

Todo bom sistema de banco de dados deve apresentar um projeto que visa a organizaccedilatildeo das

informaccedilotildees e utilizaccedilatildeo de teacutecnicas para que o futuro sistema obtenha boa performance e

tambeacutem facilite infinitamente as manutenccedilotildees que venham a acontecer

O projeto de banco de dados se daacute em duas fases

Modelagem conceitual Projeto loacutegico

Estas duas etapas se referem a um sistema de banco de dados ainda natildeo implementado ou seja

que ainda natildeo exista um novo projeto Para os casos em que o banco de dados jaacute exista mas eacute

um sistema legado por exemplo ou um sistema muito antigo sem documentaccedilatildeo o processo de

projeto de banco de dados se daraacute atraveacutes da utilizaccedilatildeo de uma teacutecnica chamada de Engenharia

Reversa que seraacute visto em outra oportunidade

Modelo conceitual

Eacute a descriccedilatildeo do BD de maneira independente ao SGBD ou seja define quais os dados

que apareceratildeo no BD mas sem se importar com a implementaccedilatildeo que se daraacute ao BD Desta

forma haacute uma abstraccedilatildeo em niacutevel de SGBD

Uma das teacutecnicas mais utilizadas dentre os profissionais da aacuterea eacute a abordagem entidade-

relacionamento (ER) onde o modelo eacute representado graficamente atraveacutes do diagrama entidade-

relacionamento (DER) (Figura 3)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 11: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1165

11

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Desde o iniacutecio da era dos microcomputadores o avanccedilo tem sido constante O computador

que se fabrica hoje dentro de alguns meses jaacute estaacute obsoleto

Atualmente o que vem surgindo satildeo inuacutemeras renovaccedilotildees com o objetivo de evoluir os sistemas

rdquoEmbora os paradigmas possam mudar as pesquisas normalmente evoluem baseadas em

resultados do passado que se constituem em fundamentos de um desenvolvimento posteriorhelliprdquo

Para Fixar

Escreva um breve resumo sobre o processo evolutivo dos computadores

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________ ___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

__________________________________________________________________

SOFTWARES

O QUE Eacute Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por

um computador com o objetivo de executar tarefas especiacuteficas Em um computador o software eacute

classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer instruccedilotildees para o hardware

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1265

12

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Diferentemente do que muitas pessoas imaginam o computador natildeo faz nada sozinho Ele

apenas processa uma seacuterie de informaccedilotildees inseridas pelo usuaacuterio para entatildeo fornecer os

resultados As informaccedilotildees inseridas e os resultados que recebemos precisam estar num formato

que noacutes humanos conseguimos entender Para facilitar essa comunicaccedilatildeo entre homem e

computador foram criados os softwares ou programas de computador Na realidade tudo que

fazemos com um computador eacute pela execuccedilatildeo desses programas

Um sistema operacional eacute um programa que atua como intermediaacuterio entre o usuaacuterio e o

hardware de um computador O propoacutesito de um sistema operacional eacute propiciar um ambiente no

qual o usuaacuterio possa executar outros programas de forma conveniente por esconder detalhes

internos de funcionamento e eficiecircncia por procurar gerenciar de forma justa os recursos do

sistema

Vimos que o sistema operacional interage diretamente com o hardware e com isso eacuteinfluenciado diretamente pela evoluccedilatildeo do mesmo Portanto a evoluccedilatildeo dos sistemas

operacionais estaacute em grande parte relacionada ao desenvolvimento de equipamentos cada vez

mais velozes compactos e de custos baixos e agrave necessidade de aproveitamento e controle

destes recursos

Assim ao falar sobre o histoacuterico dos sistemas operacionais estaremos recordando um

pouco a evoluccedilatildeo do hardware Devemos lembrar que as datas das fases da evoluccedilatildeo satildeo

aproximadasHISTOacuteRIA

Desde os tempos do computador programado por chaves e cabos ateacute o surgimento do

teclado e impressora de caracteres procurou-se ao longo do processo evolutivo do computador

tornar a sua utilizaccedilatildeo mais amigaacutevel precisa raacutepida e eficaz

Primeira geraccedilatildeo (1945-1955)

Vaacutelvulas e Paineacuteis de Programaccedilatildeo - No iniacutecio da Segunda Guerra Mundial surgiram os primeiros

computadores digitais formados por milhares de vaacutelvulas que ocupavam aacutereas enormes sendo

de funcionamento lento e duvidoso O ENIAC foi o primeiro computador digital de propoacutesito geral

Criado para a realizaccedilatildeo de caacutelculos baliacutesticos A programaccedilatildeo era feita em paineacuteis atraveacutes de

fios utilizando linguagem de maacutequina Natildeo existia o conceito de sistema operacional Outros

computadores foram construiacutedos nessa eacutepoca mas eram utilizados apenas em universidades e

oacutergatildeos militares

SEGUNDA GERACcedilAtildeO (1956-1965)

Transistores e Sistemas em Lote (batch)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1365

13

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

A criaccedilatildeo do transistor e das memoacuterias magneacuteticas contribuiu para o enorme avanccedilo dos

computadores da eacutepoca O transistor permitiu o aumento da velocidade e da confiabilidade do

processamento as memoacuterias magneacuteticas permitiram o acesso mais raacutepido aos dados maior

capacidade de armazenamento e computadores menores

Surgiram os primeiros sistemas operacionais para tentar automatizar as tarefas manuais

ateacute entatildeo realizadas e as primeiras linguagens de programaccedilatildeo como Assembly e Fortran Os

programas deixaram de ser feitos diretamente no hardware o que facilitou enormemente o

processo de desenvolvimento de programas Surgiu o processamento em batch em que um lote

(batch) de programas e de dados era submetido ao computador por vez

Terceira geraccedilatildeo (1966-1980)

Circuitos Integrados e Multiprogramaccedilatildeo

Por meio dos circuitos integrados e posteriormente dos microprocessadores foi possiacutevelviabilizar e difundir o uso de sistemas computacionais por empresas devido agrave diminuiccedilatildeo de seus

custos de aquisiccedilatildeo Houve um aumento no poder de processamento e diminuiccedilatildeo no tamanho

dos equipamentos

A evoluccedilatildeo dos processadores de entradasaiacuteda permitiu que enquanto um programa

esperasse por uma operaccedilatildeo de leituragravaccedilatildeo o processador executasse um outro programa

Para tal a memoacuteria foi dividida em particcedilotildees em que um programa esperava sua vez para ser

processado A essa teacutecnica de compartilhamento da memoacuteria principal e processador deu-se onome de multiprogramaccedilatildeo

QUARTA GERACcedilAtildeO (1981-1990)

Computadores Pessoais

Os mini e superminicomputadores se firmaram no mercado e os microcomputadores

ganharam um grande impulso Surgem as estaccedilotildees de trabalho (workstations) que apesar de

monousuaacuterias permitem que se executem diversas tarefas concorrentemente criando o conceito

de multitarefa

No final dos anos 80 os computadores tiveram um grande avanccedilo decorrente de aplicaccedilotildees que

exigiam um enorme volume de caacutelculos Para acelerar o processamento foram adicionados

outros processadores exigindo dos sistemas operacionais novos mecanismos de controle e

sincronismo Com o multiprocessamento foi possiacutevel a execuccedilatildeo de mais de um programa

simultaneamente ou ateacute de um mesmo programa por mais de um processador Foram

introduzidos processadores vetoriais e teacutecnicas de paralelismo de processamento fazendo com

que os computadores se tornassem ainda mais poderosos

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1465

14

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O uso das redes distribuiacutedas se difundiu por todo o mundo permitindo o acesso a outros

sistemas de computaccedilatildeo independentemente de cidade paiacutes e ateacute mesmo fabricante Os

softwares de rede passaram a estar intimamente relacionados com o sistema operacional de cada

maacutequina e surgem os sistemas operacionais de rede

QUINTA GERACcedilAtildeO (1991ATUALMENTE)

Houve grandes avanccedilos em termos de hardware software e telecomunicaccedilotildees como

consequecircncia da evoluccedilatildeo das aplicaccedilotildees que necessitavam cada vez mais de capacidade de

processamento e armazenamento de dados Sistemas especialistas sistemas multimiacutedia bancos

de dados distribuiacutedos inteligecircncia artificial e redes neurais satildeo apenas alguns exemplos da

necessidade cada vez maior de informaccedilatildeo e de capacidade de processamento O conceito de

processamento distribuiacutedo eacute explorado nos sistemas operacionais de forma que suas funccedilotildees

estejam espalhadas por vaacuterios processadores atraveacutes de redes de computadores A deacutecada de 90 foi definitiva para a consolidaccedilatildeo dos sistemas operacionais baseados em

interfaces graacuteficas

Atualmente temos as plataformas multicore (vaacuterios nuacutecleos) disponiacuteveis em computadores

pessoais e ateacute notebooks possibilitando cada vez mais a paralelizaccedilatildeo de aplicaccedilotildees e elevando

em muito o tempo de execuccedilatildeo dos programas Os fanaacuteticos pelos jogos de computador que o

digam

Os sistemas operacionais - satildeo parte fundamental dos computadores satildeo responsaacuteveis pororganizar os processos (programas) que estatildeo sendo executados pelo processador criando uma

fila de processos que garante que todos receberatildeo sua parcela de processamento

Para Fixar

Escreva um breve resumo sobre o processo evolutivo dos Softwares

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________ __________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1565

15

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

PRINCIacutePAIS SISTEMAS OPERACIONAIS

Principais SO que deram iniacutecio a era Windows MCs Linux e Unix

1987 ndash Andrew Tanenbaum um professor de computaccedilatildeo holandecircs desenvolve um sistema

operacional didaacutetico simplificado mas respeitando a API do UNIX que foi batizado como Minix

1987 ndash IBM e Microsoft apresentam a primeira versatildeo do OS2 um sistema multitarefa destinado

a substituir o MS-DOS e o Windows Mais tarde as duas empresas rompem a parceria a IBM

continua no OS2 e a Microsoft investe no ambiente Windows

1991 ndash Linus Torvalds um estudante de graduaccedilatildeo Finlandecircs inicia o desenvolvimento do Linux

lanccedilando na rede Usenet o nuacutecleo 001 logo abraccedilado por centenas de programadores ao redor

do mundo

1993 ndash a Microsoft lanccedila o Windows NT o primeiro sistema 32 bits da empresa

Capiacutetulo 2 ndash Banco de Dados

Banco de dados eacute um arquivo especial que armazena dados arrumados sob forma de

tabelas ou matrizes (em linhas e colunas) Quando um conjunto de informaccedilotildees possui muitasvariaacuteveis interligadas entre si eacute aconselhaacutevel que sejam armazenadas e trabalhadas em um

banco de dados Os bancos de dados fornecem uma seacuterie de funcionalidades que natildeo satildeo

encontradas em arquivos comuns ldquoBancos de dados satildeo coleccedilotildees de informaccedilotildees que se

relacionam de forma que crie um sentidordquo Satildeo de vital importacircncia para empresas e haacute duas

deacutecadas se tornaram a principal peccedila dos sistemas de informaccedilatildeo ldquoFonte Wikipeacutediardquo

Entatildeo um banco de dados eacute uma entidade na qual eacute possiacutevel armazenar dados de maneira

estruturada e com a menor redundacircncia possiacutevel Estes dados devem poder ser utilizadas porprogramas por usuaacuterios diferentes Assim a noccedilatildeo baacutesica de dados eacute acoplada geralmente a

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1665

16

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

uma rede a fim de poder pocircr conjuntamente estas informaccedilotildees daiacute o nome banco Fala-se

geralmente de sistema de informaccedilatildeo para designar toda a estrutura que reuacutene os meios

organizados para poder compartilhar dados

DADOS amp INFORMACcedilOtildeES

Muitos consideram dados e informaccedilotildees como palavras sinocircnimas mas na verdade natildeo satildeo

Para entender o que eacute um banco de dados eacute muito importante saber a diferenccedila entre essas duas

palavras

Dados satildeo fatos brutos em sua forma primaacuteria E muitas vezes os dados podem natildeo fazer

sentido sozinhos

Informaccedilotildees consistem no agrupamento de dados de forma organizada para fazer sentido

gerar conhecimento

Por exemplo o nuacutemero 2001 isoladamente faz algum sentido Natildeo Isso eacute um dado E se eu

dissesse ldquoAno do atentado terrorista agraves torres gecircmeas 2001Prime Agora faz sentido Isso eacute

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1765

17

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

uma informaccedilatildeo Um banco de dados eacute uma estrutura de dados organizada que permite a

extraccedilatildeo de informaccedilotildees

Metadados ndash Eacute todo dado relativo a outro dado eacute chamado de metadados No exemplo anterior

do ano 2001 o dado ldquoAno do atentado terrorista agraves torres gecircmeasrdquo eacute um metadado pois ele eacute um

dado sobre o dado ldquo2001rdquo Outro exemplo mais comum em banco de dados o campo telefone da

tabela cliente tem entre outros os seguinte metadados nome (telefone) tipo (texto) tamanho (30

caracteres) obrigatoriedade (natildeo) etc

Um banco de dados eacute formado por dado e metadados Sem os metadados natildeo seria

possiacutevel organizar e extrair informaccedilotildees de um banco de dados

Para Fixar

Dados - Em informaacutetica designa-se por dados os elementos de partida que servem de base

para o tratamento e sobre os quais o computador efetua as operaccedilotildees necessaacuterias agrave tarefa emquestatildeo

Os dados satildeo uma representaccedilatildeo dos fatos conceitos ou instruccedilotildees de uma maneira

normalizada que se adapte agrave comunicaccedilatildeo interpretaccedilatildeo e processamento pelo ser humano ou

atraveacutes de maacutequinas automaacuteticas

Os dados satildeo representados por siacutembolos como por exemplo as letras do alfabeto a b c

etc mas natildeo satildeo em si a informaccedilatildeo desejada

ExemploO I O C O M B - satildeo dados mas natildeo eacute informaccedilatildeo perceptiacutevel ao homem

A informaccedilatildeo natildeo eacute mais do que dados organizados e ordenados de forma uacutetil Isto eacute informaccedilatildeo

eacute o conhecimento produzido como resultado do processamento de dados

Se processarmos os dados que tiacutenhamos anteriormente entatildeo obtemos a informaccedilatildeo

O I O C O M B - Dados

- Processamento

C O M B O I O ndash Informaccedilatildeo

Para fixar

Escreva o significado de

Dados___________________________________________________________________

_________________________________________________________________________

Informaccedilatildeo_______________________________________________________________

_________________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1865

18

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Metadados_______________________________________________________________

_________________________________________________________________________

Banco de

dados___________________________________________________________________

_________________________________________________________________________

A histoacuteria dos bancos de dados

Hoje os bancos de dados satildeo essenciais para muitas empresas e estatildeo no coraccedilatildeo de

muitos sistemas computacionais Ter acesso raacutepido agraves informaccedilotildees eacute muito importante para a

correta tomada de decisotildees em um negoacutecio Se vocecirc pretende trabalhar com desenvolvimento de

softwares com certeza precisaraacute trabalhar com bancos de dados em algum momento Conhecer

a histoacuteria dos bancos de dados e como eles evoluiacuteram eacute muito importante para entender como os

bancos de dados mais comuns satildeo organizados Entatildeo como aconteceu a evoluccedilatildeo dos bancos

de dados

Antigamente as empresas armazenavam dados em fichas de papel que eram organizadas

em arquivos fiacutesicos atraveacutes de pastas Extrair informaccedilotildees e manter esses arquivos organizados

era uma tarefa muito custosa Aleacutem disso o acesso agrave informaccedilatildeo dependia da localizaccedilatildeo

geograacutefica dos arquivos Enfim esses arquivos fiacutesicos evoluiacuteram para arquivos digitais No iniacutecio

cada entidade (clientes funcionaacuterios produtos etc) era um arquivo de dados que eram

acompanhados de um ldquosoftware simplesrdquo para manipular os dados do arquivo esses softwares

permitiam realizar operaccedilotildees de cadastro alteraccedilatildeo exclusatildeo e consulta nos arquivos digitais De

fato melhorou bastante principalmente a tarefa de consulta de informaccedilotildees poreacutem os arquivos

digitais eram ainda uma versatildeo melhorada dos arquivos fiacutesicos

Mas as entidades precisavam relacionar-se por exemplo um produto eacute fornecido por

um fornecedor e com os arquivos digitais relacionaacute-las natildeo era uma tarefa muito trivial os

ldquosoftwares simplesrdquo para manipular os arquivos digitais comeccedilaram a ficar ldquocomplexosrdquo para

permitir os relacionamentos entre entidades Entatildeo na deacutecada de 60 a empresa IBM investiu

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1965

19

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

fortemente em pesquisas para solucionar estes problemas dos bancos de dados digitais

primitivos Vaacuterios modelos de bancos de dados surgiram nesta eacutepoca dentre eles os modelos

hieraacuterquicos e rede

Em junho de 1970 o pesquisador Edgar Frank ldquoTedrdquo Codd da IBM mudou a histoacuteria dos

bancos de dados apresentando o modelo relacional no artigo intitulado ldquoA Relational Model of

Data for Large Shared Data Banksrdquo (Um modelo relacional de dados para grandes bancos de

dados compartilhados) onde o autor apresentou uma forma de usuaacuterios sem conhecimento

teacutecnico armazenarem e extraiacuterem grandes quantidades de informaccedilotildees de um banco de dados

Esse artigo foi o grande impulso para a evoluccedilatildeo dos bancos de dados a partir do artigo de ldquoTedrdquo

Codd que os cientistas aprofundaram a ideia de criar o modelo de banco de dados relacional

BANCO DE DADOS RELACIONAL

Apesar de ter sido o marco dos bancos de dados relacionais o artigo de Codd natildeo foimuito explorado no iniacutecio Soacute no final da deacutecada de 70 que foi desenvolvido um sistema baseado

nas ideias do cientista o ldquoSistema Rrdquo Junto com esse sistema foi criado a linguagem de consulta

estruturada (SQL ndash Structured Query Language) que se tornou a linguagem padratildeo para bancos

de dados relacionais Embora tenha contribuiacutedo para a evoluccedilatildeo dos bancos de dados

relacionais o ldquoSystem Rrdquo natildeo foi muito bem sucedido comercialmente mas os sistemas de banco

de dados seguintes foram baseados nele

Nos anos 80 surgiram outros bancos de dados a Oracle apresentou o Oracle 2 e a IBMo SQLDS (que se tornou DB2) ambos sistemas comerciais de bancos de dados Na sequencia

vieram SQL Server MySQL DBase III Paradox etchellip

BANCOS DE DADOS HOJE

Atualmente existem vaacuterios modelos de bancos de dados tais como orientado a objetos

orientado a documentos etc Mas o mais comum ainda eacute o banco de dados relacional A decisatildeo

entre qual modelo de banco de dados utilizarem baseia-se no tipo de dados que vocecirc pretende

armazenar Por exemplo se vocecirc for armazenar uma grande quantidade de dados em um modelo

pequeno (imagine um banco de dados para o twitter) eacute mais indicado utilizar um banco de dados

orientado a documentos a um banco de dados relacional Muitas questotildees envolvem essa

decisatildeo mas natildeo eacute uma questatildeo de superioridade entre uma ou outra tecnologia todas tecircm proacutes

e contras e satildeo mais indicadas ou natildeo para cada problema

Para fixar

Faccedila um breve resumo sobre o surgimos dos bancos de dados

______________________________________________________________________________

______________________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2065

20

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

Dados amp Informaccedilatildeo

A informaccedilatildeo eacute encarada atualmente como um dos recursos mais importantes de uma

organizaccedilatildeo contribuindo decisivamente para a sua maior ou menor competitividade De fato

com o aumento da concorrecircncia tornou-se vital melhorar as capacidades de decisatildeo a todos osniacuteveis

Hoje mais que nunca a tomada de decisatildeo nas organizaccedilotildees eacute um processo complexo

dada a qualidade de informaccedilatildeo em jogo a sua complexidade e a frequecircncia com que se altera

No entanto para que possa ser utilizada com um apoio eficaz agrave tomada de decisatildeo a informaccedilatildeo

soacute tecircm valor se verificarem simultaneamente algumas condiccedilotildees

ATUALIDADE ndash O valor da informaccedilatildeo dependeraacute em grande parte da sua atualidade

Dado o dinamismo verificado em todos os setores da sociedade em geral e do ambiente

empresarial em particular o periacuteodo de validade da informaccedilatildeo eacute cada vez mais curto Torna-se

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2165

21

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

necessaacuterio dispor de fontes de informaccedilatildeo que acompanhem continuamente essas modificaccedilotildees

Soacute com base em informaccedilatildeo atualizada se podem tomar decisotildees acertadas

CORRECcedilAtildeO ndash Natildeo basta que a informaccedilatildeo seja atual eacute tambeacutem necessaacuterio que na

medida do possiacutevel seja rigorosa Soacute com informaccedilatildeo correta se pode decidir com confianccedila

RELEVAcircNCIA ndash Dado o grande de volume de informaccedilatildeo envolvida o processo de tomada

de decisatildeo ao contraacuterio de ser facilitado pode ser dificultado pelo excesso de informaccedilatildeo A

informaccedilatildeo deve ser devidamente filtrada de tal forma que apenas aquela com relevacircncia para

cada situaccedilatildeo seja considerada

DISPONIBILIDADE ndash Ainda que a informaccedilatildeo verifique os trecircs requisitos anteriores a sua

utilidades poderaacute ser posta em causa se natildeo puder ser disponibilizada de forma imediata no

momento em que eacute solicitada As decisotildees muito ponderadas com o longo periacuteodo de gestaccedilatildeo

satildeo cada vez mais situaccedilotildees do passado Hoje dadas as caracteriacutesticas do meio envolvente oprocesso de tomada de decisatildeo tem que ser quase instantacircneo Para isso a informaccedilatildeo tem que

ser disponibilizada rapidamente caso contraacuterio deixa de ser uacutetil

LEGIBILIDADE - Esta condiccedilatildeo apesar de apresentada em uacuteltimo lugar natildeo eacute por isso

menos importante A informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada

De fato de nada vale que a informaccedilatildeo seja atual precisa relevante e disponibilizada em

tempo oportuno se natildeo puder ser entendida A forma como eacute disponibilizada tem tambeacutem grande

importacircncia informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada A forma como eacutedisponibilizada tem tambeacutem grande importacircncia

Quanto aos requisitos de atualidade e correccedilatildeo da informaccedilatildeo para que esta possa ser

correta e atual os dados de onde eacute derivada tecircm forccedilosamente que ser precisos e atualizados

Quanto aos requisitos de relevacircncia disponibilidade e legibilidade da informaccedilatildeo estes tecircm mais

a ver com os meios utilizados para o processamento dos dados

Como eacute que a informaccedilatildeo eacute organizada

A organizaccedilatildeo da informaccedilatildeo eacute efetuada de acordo com criteacuterios distintos como

Hierarquia dos seus componentes

O tipo de assunto a que se refere

Forma de armazenamento

Quanto agrave HIERARQUIA DOS COMPONENTES DA INFORMACcedilAtildeO esta eacute organizada em

Caracteres Campos Registros Ficheiros Caracteres - podem ser numeacutericos alfabeacuteticos ou

sinais de pontuaccedilatildeo Campos - satildeo conjuntos de caracteres que identificam um componente de

um registo Registos - satildeo agrupamentos de campos descritivos de uma realidade Ficheiros - satildeo

conjuntos de registos cuja informaccedilatildeo eacute estruturalmente analoacutegica

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2265

22

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Quanto AO TIPO DE ASSUNTO a que se refere agrave informaccedilatildeo

Esta pode ser como que etiquetada de modo a tornar faacutecil a sua procura e a evitar perdas

de tempo

Quando a informaccedilatildeo estaacute armazenada em ficheiros estes indicam o seu tipo atraveacutes de

uma extensatildeo ao nome do ficheiro

Algumas das extensotildees mais comuns satildeo

- COM ficheiro de comandos - BACK backup ou coacutepias de seguranccedila- EXE executaacuteveis - SYS ficheiros de sistema

- BAT processamento batch - XLS folha de caacutelculo provenientes do Excel

- TXT texto no formato ASCII - PPT apresentaccedilotildees provenientes do PowerPoint

- PAS programas em Linguagem Pascal - MBD base de dados provenientes do Access

- C programas em Linguagem C - DOC documentos provenientes de um processador de

texto

Quanto Agrave FORMA DE ARMAZENAMENTO da informaccedilatildeoRelativamente ao armazenamento por exemplo no disco riacutegido do computador a

informaccedilatildeo eacute organizada em diretorias cujo nome revela o tipo de ficheiros que aiacute se encontram

podendo cada diretorias conter diversas subdiretorias

Organizaccedilatildeo dos dados num Computador

Os dados que fornecemos a um computador para processar podem ser de trecircs tipos

quantitativos classificativos referenciais

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2365

23

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Dados quantitativos - satildeo os que exprimem quantidades e por isso normalmente servem

de base para caacutelculos aritmeacuteticos Exemplo a ficha escolar as notas do periacuteodo as faltas o total

das faltas

bull Dados classificativos - satildeo os que descrevem ou especificam os elementos envolvidos e

quantificados Normalmente servem de complemento aos dados quantitativos identificando

pessoas objetos situaccedilotildees etc Natildeo servem portanto para elementos de caacutelculo Exemplo a

ficha escolar o nome do aluno o nome da disciplina o nome do professor

bull Dados referenciais - satildeo dados que permitem controlar e referenciar os elementos

tratados Exemplo a ficha escolar o ano letivo o nuacutemero do aluno a turma

Para fixar

Escreva de forma resumida como podemos organizar os dados

_________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

Tipos de Operaccedilotildees realizadas sobre os dados

O tipo de operaccedilotildees efetuadas depende dos objetivos do processamento e igualmente dostipos de dados nele envolvidos pois o computador pode processar dados numeacutericos ou natildeo

numeacutericos Assim temos como operaccedilotildees possiacuteveis num processamento

bull Operaccedilotildees aritmeacuteticas - satildeo efetuadas apenas sobre dados numeacutericos e satildeo

basicamente constituiacutedas por somas subtraccedilotildees multiplicaccedilotildees divisotildees e outras similares

bull Operaccedilotildees loacutegicas - satildeo efetuadas sobre dados numeacutericos ou natildeo numeacutericos Estas

operaccedilotildees satildeo tambeacutem por vezes designadas por operaccedilotildees de comparaccedilatildeo

bull Operaccedilotildees de movimentaccedilatildeo interna - satildeo efetuadas sobre qualquer tipo de dados e

consistem na coacutepia e mudanccedila de localizaccedilatildeo interna dos dados na memoacuteria do computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2465

24

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Operaccedilatildeo de InputOutput - satildeo as operaccedilotildees que envolvem os oacutergatildeos de entrada e

saiacuteda permitindo a comunicaccedilatildeo entre o operador e a maacutequina

Funccedilotildees do processamento de dados

Considera-se como processamento de dados o conjunto de todas as operaccedilotildees efetuadas desde

a entrada dos dados ateacute agrave saiacuteda da informaccedilatildeo Todas estas operaccedilotildees de vaacuterios tipos satildeo

normalmente associadas a seis funccedilotildees do processamento de dados input ordenaccedilatildeo

processamento armazenamento output e controle

bull Input - fase de seleccedilatildeo e aquisiccedilatildeo dos dados pelo computador

bull Ordenaccedilatildeo - esta eacute uma funccedilatildeo auxiliar O seu objetivo eacute dispor os dados de uma forma

organizada (ordenada) de modo a facilitar o seu tratamento Se os dados se mantiverem

ordenados segundo um determinado criteacuterio preacute-definido a sua pesquisa eacute mais faacutecil o que faz

aumentar a velocidade do processamento

bull Processamento - considera-se processamento ao conjunto de todas as operaccedilotildees

efetuadas internamente pelo computador na manipulaccedilatildeo dos dados

bull Armazenamento - esta eacute uma funccedilatildeo muito importante que permite posteriormente

analisar as etapas e os resultados do processamento

bull Output - eacute a obtenccedilatildeo de resultados sob a forma de informaccedilatildeo significativa para as

pessoas a quem se destina

bull Controle - a sua finalidade eacute detectar corrigir e eliminar possiacuteveis erros ou afastamentosem relaccedilatildeo aos objetivos inicialmente traccedilados

Utilidade de um banco de dados

Um banco de dados permite pocircr dados agrave disposiccedilatildeo de usuaacuterios para uma consulta uma

introduccedilatildeo ou uma atualizaccedilatildeo assegurando-se dos direitos atribuiacutedos a estes uacuteltimos Isso eacute

ainda mais uacutetil quando os dados informaacuteticos satildeo cada vez mais numerosos

Um banco de dados pode ser local quer dizer utilizaacutevel em uma maacutequina por um usuaacuterio

ou repartida quer dizer que as informaccedilotildees satildeo armazenadas em maacutequinas distantes eacessiacuteveis por rede A vantagem essencial da utilizaccedilatildeo dos bancos de dados eacute a possibilidade

de poder ser acessada por vaacuterios usuaacuterios simultaneamente

A gestatildeo dos bancos de dados

A fim de poder controlar os dados bem como os usuaacuterios a necessidade de um sistema de

gestatildeo fez-se sentir rapidamente A gestatildeo do banco de dados faz-se graccedilas a um sistema

chamado SGBD (sistema de gestatildeo de bancos de dados) ou em inglecircs DBMS (Database

managment system) O SGBD eacute um conjunto de serviccedilos (aplicaccedilotildees software) que permitem

gerenciar os bancos de dados quer dizer

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2565

25

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Permitir o acesso aos dados de maneira simples

Autorizar um acesso agraves informaccedilotildees a muacuteltiplos usuaacuterios

Manipular os dados presentes no banco de dados (inserccedilatildeo supressatildeo modificaccedilatildeo)

O SGBD pode decompor-se em trecircs subsistemas

O sistema de gestatildeo de arquivos permite o armazenamento das informaccedilotildees num suporte

fiacutesico

O SGBD interno gerencia a emissatildeo das informaccedilotildees

O SGBD externo representa a interface com o usuaacuterio

Bancos de dados satildeo conjuntos de dados com uma estrutura regular que organizam

informaccedilatildeo Um banco de dados normalmente agrupa informaccedilotildees utilizadas para um mesmo fim

O modelo de dados mais adotado hoje em dia eacute o modelo relacional onde as estruturas

tecircm a forma de tabelas compostas por linhas e colunas

Resumindo um banco de dados eacute uma coleccedilatildeo de dados relacionados Entende-se por

dado toda a informaccedilatildeo que pode ser armazenada e que apresenta algum significado impliacutecito

dentro do contexto ao qual ele se aplica Por exemplo num sistema bancaacuterio uma pessoa eacuteidentificada pelo seu cpf(cliente) Em um sistema escolar a pessoa eacute identificada pelo seu nuacutemero

de matriacutecula(aluno) Aleacutem disso os dados que seratildeo armazenados em cada situaccedilatildeo podem

diferir consideravelmente

Atividades

1) Onde utilizar um banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2665

26

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2) Como funciona um sistema gerenciador de banco de dados

3) Como funciona o modelo relacional

Modelo Relacional

O modelo relacional eacute uma teoria matemaacutetica desenvolvida por Edgar Frank Codd para

descrever como as bases de dados devem funcionar Embora esta teoria seja a base para o

software de bases de dados relacionais muito poucos sistemas de gestatildeo de bases de dados

seguem o modelo de forma restrita e todos tecircm funcionalidades que violam a teoria desta forma

variando a complexidade e o poder A discussatildeo se esses bancos de dados merecem ser

chamados de relacional ficou esgotada com tempo com a evoluccedilatildeo dos bancos existentes

De acordo com a arquitetura ANSI SPARC em trecircs niacuteveis os Bancos de dados

relacionais consistem de trecircs componentes

bull uma coleccedilatildeo de estruturas de dados formalmente chamadas de relaccedilotildees ou

informalmente tabelas compondo o niacutevel conceitual

bull uma coleccedilatildeo dos operadores a aacutelgebra e o caacutelculo relacionais que constituem a base da

linguagem SQL

bull uma coleccedilatildeo de restriccedilotildees da integridade definindo o conjunto consistente de estados de

base de dados e de alteraccedilotildees de estados As restriccedilotildees de integridade podem ser de quatro

tipos

bull domiacutenio (ou tipo de dados) bull atributo

bull restriccedilotildees de base de dados

De acordo com o Princiacutepio de Informaccedilatildeo toda informaccedilatildeo tem de ser representada como dados

qualquer tipo de atributo representa relaccedilotildees entre conjuntos de dados

Nos bancos de dados relacionais os relacionamentos entre as tabelas natildeo satildeo codificados

explicitamente na sua definiccedilatildeo Em vez disso se fazem implicitamente pela presenccedila de

atributos chave As bases de dados relacionais permitem aos utilizadores (incluindo

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2765

27

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

programadores) escreverem consultas (queries) reorganizando e utilizando os dados de forma

flexiacutevel e natildeo necessariamente antecipada pelos projetistas originais

Esta flexibilidade eacute especialmente importante em bases de dados que podem ser utilizadas

durante deacutecadas tornando as bases de dados relacionais muito populares no meio comercial

Um dos pontos fortes do modelo relacional de banco de dados eacute a possibilidade de

definiccedilatildeo de um conjunto de restriccedilotildees de integridade Estas definem os conjuntos de estados e

mudanccedilas de estado consistentes do banco de dados determinando os valores que podem e os

que natildeo podem ser armazenados

Aplicaccedilotildees de bancos de dados

Bancos de dados satildeo usados em muitas aplicaccedilotildees enquanto atravessando virtualmente a

gama inteira de software de computador Bancos de dados eacute o meacutetodo preferido de

armazenamento para aplicaccedilotildees multiusuaacuterias grandes onde a coordenaccedilatildeo entre muitosusuaacuterios eacute necessaacuteria Ateacute mesmo usuaacuterios individuais os acham convenientes entretanto e

muitos programas de correio eletrocircnico e os organizadores pessoais estatildeo baseados em

tecnologia de banco de dados standard

Aplicativo de Banco de Dados

Um aplicativo de banco de dados eacute um tipo de software exclusivo para gerenciar um banco

de dados Aplicativos de banco de dados abrangem uma vasta variedade de necessidades e

objetivos de pequenas ferramentas como uma agenda ateacute complexos sistemas empresariaispara desempenhar tarefas como a contabilidade

O termo Aplicativo de Banco de dados usualmente se refere a softwares que oferecem

uma interface para o banco de dados Exemplos de aplicativos de banco de dados satildeo Microsoft

Visual FoxPro Microsoft Access dBASE FileMaker (em certa medida) HyperCard MySQL

PostgreSQL Microsoft SQL Server e Oracle

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2865

28

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Capiacutetulo 3 - HARDWARE E SOFTWARE

O QUE Eacute O HARDWARE

No acircmbito da informaacutetica eacute dada a designaccedilatildeo de hardware a todos os componentes

fiacutesicos que fazem parte de um sistema informaacutetico incluiacutedo toda a parte fiacutesica de um computador

(nomeadamente os processadores motherbord disco riacutegido placas de som placas de viacutedeo

memoacuterias etc) e todos os perifeacutericos (tais como teclados mouse monitores impressoras

scanners modems entre outros)

Peccedilas de um computador

Se vocecirc usa um computador desktop jaacute deve saber que natildeo existe uma parte uacutenica

chamada computador Um computador eacute na verdade um sistema de muitas partes funcionando

em conjunto As partes fiacutesicas que vocecirc pode ver e tocar satildeo denominadas

coletivamente hardware (O software por outro lado se refere agraves instruccedilotildees ou programas que

dizem ao hardware o que fazer)

A ilustraccedilatildeo a seguir mostra os dispositivos de hardware mais comuns em um sistema de

computador desktop Seu sistema pode ter uma aparecircncia um pouco diferente mas

provavelmente possui a maioria destas peccedilas Um computador laptop possui peccedilas semelhantes

mas as combina em um uacutenico pacote do tamanho de um caderno

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2965

29

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Sistema de computador desktop

Unidade de sistema

A unidade de sistema (Gabinete) eacute o nuacutecleo de um sistema de computador Normalmente

eacute uma caixa retangular colocada sobre a mesa ou embaixo dela Dentro dessa caixa estatildeo os

componentes eletrocircnicos que processam as informaccedilotildees O mais importante desses

componentes eacute a CPU (unidade de processamento central) ou microprocessador que atua como

o ceacuterebro do computador Outro componente eacute a memoacuteria RAM que armazena

temporariamente informaccedilotildees utilizadas pela CPU enquanto o computador estaacute ligado As

informaccedilotildees gravadas na RAM satildeo apagadas quando o computador eacute desligado

Quase todas as outras partes do computador se conectam agrave unidade de sistema por meio

de cabos Os cabos satildeo conectados aportas (aberturas) especiacuteficas geralmente na parte traseira

da unidade de sistema O hardware que natildeo faz parte da unidade de sistema eacute

chamado dispositivo perifeacuterico ou simplesmente dispositivo

Unidade de sistema

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3065

30

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Armazenamento

O computador possui uma ou mais unidades de disco ou seja dispositivos que armazenam

informaccedilotildees em um disco de plaacutestico ou de metal O disco preserva as informaccedilotildees mesmo

quando o computador estaacute desligado

Unidade de disco riacutegido

A unidade de disco riacutegido do computador armazena informaccedilotildees em um disco riacutegido que eacute um

prato riacutegido ou pilha de pratos com uma superfiacutecie magneacutetica Como os discos riacutegidos podem

reter uma grande quantidade de informaccedilotildees normalmente eles funcionam como principal meio

de armazenamento do computador guardando praticamente todos os programas e arquivos Em

geral a unidade de disco riacutegido fica localizada dentro da unidade de sistema

Unidade de disco riacutegidoUnidades de CD e DVD

Hoje em dia quase todos os computadores vecircm equipados com uma unidade de CD ou DVD

geralmente localizada na frente da unidade de sistema As unidades de CD usam lasers para ler

(recuperar) dados de um CD Muitas delas tambeacutem podem gravar dados em CDs Se vocecirc tiver

uma unidade de disco gravaacutevel poderaacute armazenar coacutepias de seus arquivos em CDs vazios A

unidade de CD tambeacutem serve para tocar CDs de muacutesica no computador

CD

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3165

31

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

As unidades de DVD fazem o mesmo que as unidades de CD e tambeacutem lecircem DVDs Se vocecirc

tiver uma unidade de DVD poderaacute ver filmes no computador Muitas unidades de DVD podem

gravar dados em DVDs vazios

Dica

Se vocecirc tiver uma unidade de CD ou DVD gravaacutevel faccedila backup (copie) periodicamente de seus

arquivos importantes em CDs ou DVDs Dessa forma caso venha a ocorrer alguma falha no disco

riacutegido vocecirc natildeo perderaacute os dados

Unidade de disquete

As unidades de disquete armazenam informaccedilotildees em discos tambeacutem chamados discos

flexiacuteveis ou disquetes Comparado a CDs e DVDs os disquetes podem armazenar apenas uma

pequena quantidade de dados Eles tambeacutem recuperam informaccedilotildees de forma mais lenta e satildeo

mais vulneraacuteveis a danos Por esses motivos as unidades de disquete satildeo cada vez menosusadas embora ainda sejam incluiacutedas em alguns computadores

Disquete

Por que estes discos satildeo chamados de disquetes Apesar de a parte externa ser composta de

plaacutestico riacutegido isso eacute apenas a capa O interior do disco eacute feito de um material de vinil fino e

flexiacutevel

Mouse

Mouse eacute um pequeno dispositivo usado para apontar e selecionar itens na tela do computador

Embora existam mouses de vaacuterias formas o modelo mais comum se assemelha a um rato (como

diz o nome em inglecircs) Ele eacute pequeno e alongado sendo conectado agrave unidade de sistema por um

cabo comprido que faz lembrar uma cauda Alguns mouses mais novos satildeo sem fio

Mouse

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3265

32

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O mouse geralmente possui dois bototildees um botatildeo principal (normalmente o da esquerda) e um

botatildeo secundaacuterio Muitos mouses tambeacutem tecircm uma roda entre os dois bototildees que permite

percorrer as telas de informaccedilotildees

Ponteiros do mouse

Agrave medida que vocecirc move o mouse com a matildeo um ponteiro na tela se move na mesma direccedilatildeo

(A aparecircncia do ponteiro pode mudar dependendo da sua posiccedilatildeo na tela) Quando quiser

selecionar um item aponte para ele e clique no botatildeo principal ou seja pressione-o e solte-o

Apontar e clicar com o mouse eacute a principal maneira de interagir com o computador Para mais

informaccedilotildees consulte Usando o mouse

Teclado

A finalidade principal do teclado eacute digitar texto no computador Ele possui teclas para letras e

nuacutemeros exatamente como em uma maacutequina de escrever A diferenccedila estaacute nas teclas especiais

As teclas de funccedilatildeo localizadas na linha superior executam funccedilotildees diferentes dependendo

de onde satildeo usadas

O teclado numeacuterico localizado agrave direita na maioria dos teclados permite inserir nuacutemeros

rapidamente

As teclas de navegaccedilatildeo como as teclas de seta permitem mover sua posiccedilatildeo dentro de

documentos ou paacuteginas da Web

Teclado

Vocecirc tambeacutem pode usar o teclado para executar muitas das mesmas tarefas que executa com

um mouse Para mais informaccedilotildees consulte Usando o teclado

Monitor

O monitor exibe informaccedilotildees em forma visual usando texto e elementos graacuteficos A parte do

monitor que exibe as informaccedilotildees eacute chamada tela Como a tela de uma televisatildeo a tela de um

computador pode mostrar imagens paradas ou em movimento

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3365

33

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Existem dois tipos baacutesicos de monitores CRT (tubo de raios catoacutedicos) e LCD (viacutedeo de cristal

liacutequido) Ambos produzem imagens niacutetidas mas os monitores LCD levam vantagem por serem

mais finos e mais leves

Monitor LCD (agrave esquerda) monitor CRT (agrave direita)

Impressora

Uma impressora transfere dados de um computador para o papel Vocecirc natildeo precisa de

impressora para usar o computador mas se tiver uma poderaacute imprimir emails cartotildees convites

anuacutencios e outros materiais Muitas pessoas tambeacutem preferem imprimir suas fotos em casa

Os dois principais tipos de impressora satildeo a jato de tinta e a laser As impressoras a jato de tinta

satildeo as mais populares para uso domeacutestico Elas podem imprimir em preto e branco ou em cores

e produzem fotos de alta qualidade quando usadas com papel especial As impressoras a laser

satildeo mais raacutepidas e mais adequadas para uso intenso

Impressora a jato de tinta (agrave esquerda) impressora a laser (agrave direita)

Alto-falantes

Os alto-falantes satildeo usados para tocar som Eles podem vir embutidos na unidade de sistema ou

ser conectados com cabos Satildeo eles que permitem ouvir muacutesica e efeitos de som no computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3465

34

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Alto-falantes do computador

Modem

Para conectar o computador agrave Internet vocecirc precisa de um modem um dispositivo que envia e

recebe informaccedilotildees do computador por linha telefocircnica ou cabo de alta velocidade Agraves vezes os

modems vecircm embutidos na unidade de sistema mas os de alta velocidade normalmente satildeo

componentes separados

Modem a cabo

O QUE Eacute O SOFTWARE

O Software eacute uma aplicaccedilatildeo ou programa do computador escrita numa determinadalinguagem interpretaacutevel por uma determinada maacutequina (o processador de um computador ou

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3565

35

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

outro equipamento) e que permite executar determinadas tarefas para as quais o software foi

projetado Estes programas satildeo compostos por uma sequecircncia de instruccedilotildees (os comandos) e de

declaraccedilotildees de dados as quais satildeo armazenaacuteveis num meio digital

Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por um

computador com o objetivo de executar tarefas especiacuteficas Tambeacutem pode ser definido como

os programas que comandam o funcionamento de um computador

Em um computador o software eacute classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer

instruccedilotildees para o hardware O hardware eacute toda a parte fiacutesica que constitui o computador por

exemplo a CPU a memoacuteria e os dispositivos de entrada e saiacuteda O software eacute constituiacutedo por

todos os programas que existem para um referido sistema quer sejam produzidos pelo proacuteprio

utente ou pelo fabricante do computador

O termo inglecircs software foi usado pela primeira vez em 1958 em um artigo escrito pelo cientistaamericano John Wilder Tukey Foi tambeacutem ele o responsaacutevel por introduzir o termo bit para

designar diacutegito binaacuterio

Os softwares podem ser classificados como

SOFTWARE DE SISTEMA

Geralmente dividido em SISTEMAS OPERACIONAIS e PROGRAMAS UTILITAacuteRIOS Para

comeccedilar os Sist Operacionais satildeo de grande importacircncia pois eles nos datildeo a opccedilatildeo de dizer ao

computador o que ele deve fazer Dois exemplos bastante conhecidos do nosso puacuteblico satildeoo Mac o Windows e o Linux Os Programas utilitaacuterios geralmente satildeo softwares de menor porte

com funccedilotildees mais especificas tipo Verificaccedilatildeo de Disco Coacutepias de Seguranccedila entre outros

SOFTWARE APLICATIVO

Neste tipo de software se enquadram todos aqueles programas que satildeo utilizados na execuccedilatildeo

de tarefas especiacuteficas Posso citar vaacuterios exemplos mas os mais comuns satildeo os processadores

de texto como o Word que servem para trabalhar com os mais diversos tipos de textos emitir

etiquetas e fazer formulaacuterios as planilhas eletrocircnicas como o Excel satildeo poderosas ferramentas

de caacutelculos que facilitam tanto aquele trabalho aacuterduo de matemaacutetica fazer graacuteficos com real

representaccedilatildeo dos dados eacute uma coisa muito boa pra quem precisa e por uacuteltimo o que muitos

usam mas natildeo sabem o nome ao certo que satildeo os Browsers ou Navegadores softwares usados

para navegar na Web dentre eles os mais conhecidos atualmente satildeo Windows Internet

Explorer Firefox Google Chrome Opera e Safaacuteri

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3665

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3765

37

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

hoje eles satildeo bastante usados em situaccedilotildees de treinamentos de pessoas para enfrentar casos no

seu dia-a-dia

SOFTWARE DE JOGOS

Geralmente satildeo softwares relacionados a entretenimento para proporcionar lazer e diversatildeo

Dispotildeem de muitos recursos interativos e existem de todos os tipos desde estrateacutegias ateacute

simulaccedilotildees reais de muitas coisas como corridas (Need for Speed) ateacute mesmo de vida como o

Second Life

SOFTWARES ABERTOS

Satildeo aqueles que permitem que o usuaacuterio produza com liberdade e criatividade se classificam

nessa categoria aqueles softwares de apresentaccedilotildees bancos de dados e vaacuterios outros

Para fixar

Descreva uma definiccedilatildeo para os tipos de softwares

Software de Sistema_____________________________________________________________

Software Aplicativo ______________________________________________________________

Software de Linguagem __________________________________________________________

Software abertos _______________________________________________________________

Capiacutetulo 4 - Conceitos Baacutesicos de Banco de Dados

Segundo Korth um banco de dados ldquoeacute uma coleccedilatildeo de dados inter -relacionados

representando informaccedilotildees sobre um domiacutenio especiacuteficordquo ou seja sempre que for possiacutevel

agrupar informaccedilotildees que se relacionam e tratam de um mesmo assunto posso dizer que tenho

um banco de dados

Podemos exemplificar situaccedilotildees claacutessicas como uma lista telefocircnica um cataacutelogo de CDs ou um

sistema de controle de RH de uma empresa

Jaacute um sistema de gerenciamento de banco de dados (SGBD) eacute um software que possui

recursos capazes de manipular as informaccedilotildees do banco de dados e interagir com o usuaacuterio

Exemplos de SGBDs satildeo Oracle SQL Server DB2 PostgreSQL MySQL o proacuteprio Access ouParadox entre outros

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3865

38

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Por uacuteltimo temos que conceituar um sistema de banco de dados como o conjunto de quatro

componentes baacutesicos dados hardware software e usuaacuterios Date conceituou que ldquosistema de

bancos de dados pode ser considerado como uma sala de arquivos eletrocircnicardquo A Figura 1 ilustra

os componentes de um sistema de banco de dados

Componentes de um sistema de banco de dados

Os objetivos de um sistema de banco de dados satildeo o de isolar o usuaacuterio dos detalhes

internos do banco de dados (promover a abstraccedilatildeo de dados) e promover a independecircncia dos

dados em relaccedilatildeo agraves aplicaccedilotildees ou seja tornar independente da aplicaccedilatildeo a estrateacutegia de

acesso e a forma de armazenamento

Abstraccedilatildeo de dados

O sistema de banco de dados deve garantir uma visatildeo totalmente abstrata do banco de

dados para o usuaacuterio ou seja para o usuaacuterio do banco de dados pouco importa qual unidade de

armazenamento estaacute sendo usada para guardar seus dados contanto que os mesmos estejam

disponiacuteveis no momento necessaacuterio

Esta abstraccedilatildeo se daacute em trecircs niacuteveis (Figura 2) Niacutevel de visatildeo do usuaacuterio as partes do banco de dados que o usuaacuterio tem acesso de

acordo com a necessidade individual de cada usuaacuterio ou grupo de usuaacuterios

Niacutevel conceitual define quais os dados que estatildeo armazenados e qual o relacionamento

entre eles

Niacutevel fiacutesico eacute o niacutevel mais baixo de abstraccedilatildeo em que define efetivamente de que maneira

os dados estatildeo armazenados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3965

39

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 2 Niacuteveis de abstraccedilatildeo

Projeto de banco de dados

Todo bom sistema de banco de dados deve apresentar um projeto que visa a organizaccedilatildeo das

informaccedilotildees e utilizaccedilatildeo de teacutecnicas para que o futuro sistema obtenha boa performance e

tambeacutem facilite infinitamente as manutenccedilotildees que venham a acontecer

O projeto de banco de dados se daacute em duas fases

Modelagem conceitual Projeto loacutegico

Estas duas etapas se referem a um sistema de banco de dados ainda natildeo implementado ou seja

que ainda natildeo exista um novo projeto Para os casos em que o banco de dados jaacute exista mas eacute

um sistema legado por exemplo ou um sistema muito antigo sem documentaccedilatildeo o processo de

projeto de banco de dados se daraacute atraveacutes da utilizaccedilatildeo de uma teacutecnica chamada de Engenharia

Reversa que seraacute visto em outra oportunidade

Modelo conceitual

Eacute a descriccedilatildeo do BD de maneira independente ao SGBD ou seja define quais os dados

que apareceratildeo no BD mas sem se importar com a implementaccedilatildeo que se daraacute ao BD Desta

forma haacute uma abstraccedilatildeo em niacutevel de SGBD

Uma das teacutecnicas mais utilizadas dentre os profissionais da aacuterea eacute a abordagem entidade-

relacionamento (ER) onde o modelo eacute representado graficamente atraveacutes do diagrama entidade-

relacionamento (DER) (Figura 3)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 12: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1265

12

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Diferentemente do que muitas pessoas imaginam o computador natildeo faz nada sozinho Ele

apenas processa uma seacuterie de informaccedilotildees inseridas pelo usuaacuterio para entatildeo fornecer os

resultados As informaccedilotildees inseridas e os resultados que recebemos precisam estar num formato

que noacutes humanos conseguimos entender Para facilitar essa comunicaccedilatildeo entre homem e

computador foram criados os softwares ou programas de computador Na realidade tudo que

fazemos com um computador eacute pela execuccedilatildeo desses programas

Um sistema operacional eacute um programa que atua como intermediaacuterio entre o usuaacuterio e o

hardware de um computador O propoacutesito de um sistema operacional eacute propiciar um ambiente no

qual o usuaacuterio possa executar outros programas de forma conveniente por esconder detalhes

internos de funcionamento e eficiecircncia por procurar gerenciar de forma justa os recursos do

sistema

Vimos que o sistema operacional interage diretamente com o hardware e com isso eacuteinfluenciado diretamente pela evoluccedilatildeo do mesmo Portanto a evoluccedilatildeo dos sistemas

operacionais estaacute em grande parte relacionada ao desenvolvimento de equipamentos cada vez

mais velozes compactos e de custos baixos e agrave necessidade de aproveitamento e controle

destes recursos

Assim ao falar sobre o histoacuterico dos sistemas operacionais estaremos recordando um

pouco a evoluccedilatildeo do hardware Devemos lembrar que as datas das fases da evoluccedilatildeo satildeo

aproximadasHISTOacuteRIA

Desde os tempos do computador programado por chaves e cabos ateacute o surgimento do

teclado e impressora de caracteres procurou-se ao longo do processo evolutivo do computador

tornar a sua utilizaccedilatildeo mais amigaacutevel precisa raacutepida e eficaz

Primeira geraccedilatildeo (1945-1955)

Vaacutelvulas e Paineacuteis de Programaccedilatildeo - No iniacutecio da Segunda Guerra Mundial surgiram os primeiros

computadores digitais formados por milhares de vaacutelvulas que ocupavam aacutereas enormes sendo

de funcionamento lento e duvidoso O ENIAC foi o primeiro computador digital de propoacutesito geral

Criado para a realizaccedilatildeo de caacutelculos baliacutesticos A programaccedilatildeo era feita em paineacuteis atraveacutes de

fios utilizando linguagem de maacutequina Natildeo existia o conceito de sistema operacional Outros

computadores foram construiacutedos nessa eacutepoca mas eram utilizados apenas em universidades e

oacutergatildeos militares

SEGUNDA GERACcedilAtildeO (1956-1965)

Transistores e Sistemas em Lote (batch)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1365

13

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

A criaccedilatildeo do transistor e das memoacuterias magneacuteticas contribuiu para o enorme avanccedilo dos

computadores da eacutepoca O transistor permitiu o aumento da velocidade e da confiabilidade do

processamento as memoacuterias magneacuteticas permitiram o acesso mais raacutepido aos dados maior

capacidade de armazenamento e computadores menores

Surgiram os primeiros sistemas operacionais para tentar automatizar as tarefas manuais

ateacute entatildeo realizadas e as primeiras linguagens de programaccedilatildeo como Assembly e Fortran Os

programas deixaram de ser feitos diretamente no hardware o que facilitou enormemente o

processo de desenvolvimento de programas Surgiu o processamento em batch em que um lote

(batch) de programas e de dados era submetido ao computador por vez

Terceira geraccedilatildeo (1966-1980)

Circuitos Integrados e Multiprogramaccedilatildeo

Por meio dos circuitos integrados e posteriormente dos microprocessadores foi possiacutevelviabilizar e difundir o uso de sistemas computacionais por empresas devido agrave diminuiccedilatildeo de seus

custos de aquisiccedilatildeo Houve um aumento no poder de processamento e diminuiccedilatildeo no tamanho

dos equipamentos

A evoluccedilatildeo dos processadores de entradasaiacuteda permitiu que enquanto um programa

esperasse por uma operaccedilatildeo de leituragravaccedilatildeo o processador executasse um outro programa

Para tal a memoacuteria foi dividida em particcedilotildees em que um programa esperava sua vez para ser

processado A essa teacutecnica de compartilhamento da memoacuteria principal e processador deu-se onome de multiprogramaccedilatildeo

QUARTA GERACcedilAtildeO (1981-1990)

Computadores Pessoais

Os mini e superminicomputadores se firmaram no mercado e os microcomputadores

ganharam um grande impulso Surgem as estaccedilotildees de trabalho (workstations) que apesar de

monousuaacuterias permitem que se executem diversas tarefas concorrentemente criando o conceito

de multitarefa

No final dos anos 80 os computadores tiveram um grande avanccedilo decorrente de aplicaccedilotildees que

exigiam um enorme volume de caacutelculos Para acelerar o processamento foram adicionados

outros processadores exigindo dos sistemas operacionais novos mecanismos de controle e

sincronismo Com o multiprocessamento foi possiacutevel a execuccedilatildeo de mais de um programa

simultaneamente ou ateacute de um mesmo programa por mais de um processador Foram

introduzidos processadores vetoriais e teacutecnicas de paralelismo de processamento fazendo com

que os computadores se tornassem ainda mais poderosos

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1465

14

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O uso das redes distribuiacutedas se difundiu por todo o mundo permitindo o acesso a outros

sistemas de computaccedilatildeo independentemente de cidade paiacutes e ateacute mesmo fabricante Os

softwares de rede passaram a estar intimamente relacionados com o sistema operacional de cada

maacutequina e surgem os sistemas operacionais de rede

QUINTA GERACcedilAtildeO (1991ATUALMENTE)

Houve grandes avanccedilos em termos de hardware software e telecomunicaccedilotildees como

consequecircncia da evoluccedilatildeo das aplicaccedilotildees que necessitavam cada vez mais de capacidade de

processamento e armazenamento de dados Sistemas especialistas sistemas multimiacutedia bancos

de dados distribuiacutedos inteligecircncia artificial e redes neurais satildeo apenas alguns exemplos da

necessidade cada vez maior de informaccedilatildeo e de capacidade de processamento O conceito de

processamento distribuiacutedo eacute explorado nos sistemas operacionais de forma que suas funccedilotildees

estejam espalhadas por vaacuterios processadores atraveacutes de redes de computadores A deacutecada de 90 foi definitiva para a consolidaccedilatildeo dos sistemas operacionais baseados em

interfaces graacuteficas

Atualmente temos as plataformas multicore (vaacuterios nuacutecleos) disponiacuteveis em computadores

pessoais e ateacute notebooks possibilitando cada vez mais a paralelizaccedilatildeo de aplicaccedilotildees e elevando

em muito o tempo de execuccedilatildeo dos programas Os fanaacuteticos pelos jogos de computador que o

digam

Os sistemas operacionais - satildeo parte fundamental dos computadores satildeo responsaacuteveis pororganizar os processos (programas) que estatildeo sendo executados pelo processador criando uma

fila de processos que garante que todos receberatildeo sua parcela de processamento

Para Fixar

Escreva um breve resumo sobre o processo evolutivo dos Softwares

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________ __________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1565

15

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

PRINCIacutePAIS SISTEMAS OPERACIONAIS

Principais SO que deram iniacutecio a era Windows MCs Linux e Unix

1987 ndash Andrew Tanenbaum um professor de computaccedilatildeo holandecircs desenvolve um sistema

operacional didaacutetico simplificado mas respeitando a API do UNIX que foi batizado como Minix

1987 ndash IBM e Microsoft apresentam a primeira versatildeo do OS2 um sistema multitarefa destinado

a substituir o MS-DOS e o Windows Mais tarde as duas empresas rompem a parceria a IBM

continua no OS2 e a Microsoft investe no ambiente Windows

1991 ndash Linus Torvalds um estudante de graduaccedilatildeo Finlandecircs inicia o desenvolvimento do Linux

lanccedilando na rede Usenet o nuacutecleo 001 logo abraccedilado por centenas de programadores ao redor

do mundo

1993 ndash a Microsoft lanccedila o Windows NT o primeiro sistema 32 bits da empresa

Capiacutetulo 2 ndash Banco de Dados

Banco de dados eacute um arquivo especial que armazena dados arrumados sob forma de

tabelas ou matrizes (em linhas e colunas) Quando um conjunto de informaccedilotildees possui muitasvariaacuteveis interligadas entre si eacute aconselhaacutevel que sejam armazenadas e trabalhadas em um

banco de dados Os bancos de dados fornecem uma seacuterie de funcionalidades que natildeo satildeo

encontradas em arquivos comuns ldquoBancos de dados satildeo coleccedilotildees de informaccedilotildees que se

relacionam de forma que crie um sentidordquo Satildeo de vital importacircncia para empresas e haacute duas

deacutecadas se tornaram a principal peccedila dos sistemas de informaccedilatildeo ldquoFonte Wikipeacutediardquo

Entatildeo um banco de dados eacute uma entidade na qual eacute possiacutevel armazenar dados de maneira

estruturada e com a menor redundacircncia possiacutevel Estes dados devem poder ser utilizadas porprogramas por usuaacuterios diferentes Assim a noccedilatildeo baacutesica de dados eacute acoplada geralmente a

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1665

16

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

uma rede a fim de poder pocircr conjuntamente estas informaccedilotildees daiacute o nome banco Fala-se

geralmente de sistema de informaccedilatildeo para designar toda a estrutura que reuacutene os meios

organizados para poder compartilhar dados

DADOS amp INFORMACcedilOtildeES

Muitos consideram dados e informaccedilotildees como palavras sinocircnimas mas na verdade natildeo satildeo

Para entender o que eacute um banco de dados eacute muito importante saber a diferenccedila entre essas duas

palavras

Dados satildeo fatos brutos em sua forma primaacuteria E muitas vezes os dados podem natildeo fazer

sentido sozinhos

Informaccedilotildees consistem no agrupamento de dados de forma organizada para fazer sentido

gerar conhecimento

Por exemplo o nuacutemero 2001 isoladamente faz algum sentido Natildeo Isso eacute um dado E se eu

dissesse ldquoAno do atentado terrorista agraves torres gecircmeas 2001Prime Agora faz sentido Isso eacute

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1765

17

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

uma informaccedilatildeo Um banco de dados eacute uma estrutura de dados organizada que permite a

extraccedilatildeo de informaccedilotildees

Metadados ndash Eacute todo dado relativo a outro dado eacute chamado de metadados No exemplo anterior

do ano 2001 o dado ldquoAno do atentado terrorista agraves torres gecircmeasrdquo eacute um metadado pois ele eacute um

dado sobre o dado ldquo2001rdquo Outro exemplo mais comum em banco de dados o campo telefone da

tabela cliente tem entre outros os seguinte metadados nome (telefone) tipo (texto) tamanho (30

caracteres) obrigatoriedade (natildeo) etc

Um banco de dados eacute formado por dado e metadados Sem os metadados natildeo seria

possiacutevel organizar e extrair informaccedilotildees de um banco de dados

Para Fixar

Dados - Em informaacutetica designa-se por dados os elementos de partida que servem de base

para o tratamento e sobre os quais o computador efetua as operaccedilotildees necessaacuterias agrave tarefa emquestatildeo

Os dados satildeo uma representaccedilatildeo dos fatos conceitos ou instruccedilotildees de uma maneira

normalizada que se adapte agrave comunicaccedilatildeo interpretaccedilatildeo e processamento pelo ser humano ou

atraveacutes de maacutequinas automaacuteticas

Os dados satildeo representados por siacutembolos como por exemplo as letras do alfabeto a b c

etc mas natildeo satildeo em si a informaccedilatildeo desejada

ExemploO I O C O M B - satildeo dados mas natildeo eacute informaccedilatildeo perceptiacutevel ao homem

A informaccedilatildeo natildeo eacute mais do que dados organizados e ordenados de forma uacutetil Isto eacute informaccedilatildeo

eacute o conhecimento produzido como resultado do processamento de dados

Se processarmos os dados que tiacutenhamos anteriormente entatildeo obtemos a informaccedilatildeo

O I O C O M B - Dados

- Processamento

C O M B O I O ndash Informaccedilatildeo

Para fixar

Escreva o significado de

Dados___________________________________________________________________

_________________________________________________________________________

Informaccedilatildeo_______________________________________________________________

_________________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1865

18

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Metadados_______________________________________________________________

_________________________________________________________________________

Banco de

dados___________________________________________________________________

_________________________________________________________________________

A histoacuteria dos bancos de dados

Hoje os bancos de dados satildeo essenciais para muitas empresas e estatildeo no coraccedilatildeo de

muitos sistemas computacionais Ter acesso raacutepido agraves informaccedilotildees eacute muito importante para a

correta tomada de decisotildees em um negoacutecio Se vocecirc pretende trabalhar com desenvolvimento de

softwares com certeza precisaraacute trabalhar com bancos de dados em algum momento Conhecer

a histoacuteria dos bancos de dados e como eles evoluiacuteram eacute muito importante para entender como os

bancos de dados mais comuns satildeo organizados Entatildeo como aconteceu a evoluccedilatildeo dos bancos

de dados

Antigamente as empresas armazenavam dados em fichas de papel que eram organizadas

em arquivos fiacutesicos atraveacutes de pastas Extrair informaccedilotildees e manter esses arquivos organizados

era uma tarefa muito custosa Aleacutem disso o acesso agrave informaccedilatildeo dependia da localizaccedilatildeo

geograacutefica dos arquivos Enfim esses arquivos fiacutesicos evoluiacuteram para arquivos digitais No iniacutecio

cada entidade (clientes funcionaacuterios produtos etc) era um arquivo de dados que eram

acompanhados de um ldquosoftware simplesrdquo para manipular os dados do arquivo esses softwares

permitiam realizar operaccedilotildees de cadastro alteraccedilatildeo exclusatildeo e consulta nos arquivos digitais De

fato melhorou bastante principalmente a tarefa de consulta de informaccedilotildees poreacutem os arquivos

digitais eram ainda uma versatildeo melhorada dos arquivos fiacutesicos

Mas as entidades precisavam relacionar-se por exemplo um produto eacute fornecido por

um fornecedor e com os arquivos digitais relacionaacute-las natildeo era uma tarefa muito trivial os

ldquosoftwares simplesrdquo para manipular os arquivos digitais comeccedilaram a ficar ldquocomplexosrdquo para

permitir os relacionamentos entre entidades Entatildeo na deacutecada de 60 a empresa IBM investiu

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1965

19

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

fortemente em pesquisas para solucionar estes problemas dos bancos de dados digitais

primitivos Vaacuterios modelos de bancos de dados surgiram nesta eacutepoca dentre eles os modelos

hieraacuterquicos e rede

Em junho de 1970 o pesquisador Edgar Frank ldquoTedrdquo Codd da IBM mudou a histoacuteria dos

bancos de dados apresentando o modelo relacional no artigo intitulado ldquoA Relational Model of

Data for Large Shared Data Banksrdquo (Um modelo relacional de dados para grandes bancos de

dados compartilhados) onde o autor apresentou uma forma de usuaacuterios sem conhecimento

teacutecnico armazenarem e extraiacuterem grandes quantidades de informaccedilotildees de um banco de dados

Esse artigo foi o grande impulso para a evoluccedilatildeo dos bancos de dados a partir do artigo de ldquoTedrdquo

Codd que os cientistas aprofundaram a ideia de criar o modelo de banco de dados relacional

BANCO DE DADOS RELACIONAL

Apesar de ter sido o marco dos bancos de dados relacionais o artigo de Codd natildeo foimuito explorado no iniacutecio Soacute no final da deacutecada de 70 que foi desenvolvido um sistema baseado

nas ideias do cientista o ldquoSistema Rrdquo Junto com esse sistema foi criado a linguagem de consulta

estruturada (SQL ndash Structured Query Language) que se tornou a linguagem padratildeo para bancos

de dados relacionais Embora tenha contribuiacutedo para a evoluccedilatildeo dos bancos de dados

relacionais o ldquoSystem Rrdquo natildeo foi muito bem sucedido comercialmente mas os sistemas de banco

de dados seguintes foram baseados nele

Nos anos 80 surgiram outros bancos de dados a Oracle apresentou o Oracle 2 e a IBMo SQLDS (que se tornou DB2) ambos sistemas comerciais de bancos de dados Na sequencia

vieram SQL Server MySQL DBase III Paradox etchellip

BANCOS DE DADOS HOJE

Atualmente existem vaacuterios modelos de bancos de dados tais como orientado a objetos

orientado a documentos etc Mas o mais comum ainda eacute o banco de dados relacional A decisatildeo

entre qual modelo de banco de dados utilizarem baseia-se no tipo de dados que vocecirc pretende

armazenar Por exemplo se vocecirc for armazenar uma grande quantidade de dados em um modelo

pequeno (imagine um banco de dados para o twitter) eacute mais indicado utilizar um banco de dados

orientado a documentos a um banco de dados relacional Muitas questotildees envolvem essa

decisatildeo mas natildeo eacute uma questatildeo de superioridade entre uma ou outra tecnologia todas tecircm proacutes

e contras e satildeo mais indicadas ou natildeo para cada problema

Para fixar

Faccedila um breve resumo sobre o surgimos dos bancos de dados

______________________________________________________________________________

______________________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2065

20

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

Dados amp Informaccedilatildeo

A informaccedilatildeo eacute encarada atualmente como um dos recursos mais importantes de uma

organizaccedilatildeo contribuindo decisivamente para a sua maior ou menor competitividade De fato

com o aumento da concorrecircncia tornou-se vital melhorar as capacidades de decisatildeo a todos osniacuteveis

Hoje mais que nunca a tomada de decisatildeo nas organizaccedilotildees eacute um processo complexo

dada a qualidade de informaccedilatildeo em jogo a sua complexidade e a frequecircncia com que se altera

No entanto para que possa ser utilizada com um apoio eficaz agrave tomada de decisatildeo a informaccedilatildeo

soacute tecircm valor se verificarem simultaneamente algumas condiccedilotildees

ATUALIDADE ndash O valor da informaccedilatildeo dependeraacute em grande parte da sua atualidade

Dado o dinamismo verificado em todos os setores da sociedade em geral e do ambiente

empresarial em particular o periacuteodo de validade da informaccedilatildeo eacute cada vez mais curto Torna-se

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2165

21

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

necessaacuterio dispor de fontes de informaccedilatildeo que acompanhem continuamente essas modificaccedilotildees

Soacute com base em informaccedilatildeo atualizada se podem tomar decisotildees acertadas

CORRECcedilAtildeO ndash Natildeo basta que a informaccedilatildeo seja atual eacute tambeacutem necessaacuterio que na

medida do possiacutevel seja rigorosa Soacute com informaccedilatildeo correta se pode decidir com confianccedila

RELEVAcircNCIA ndash Dado o grande de volume de informaccedilatildeo envolvida o processo de tomada

de decisatildeo ao contraacuterio de ser facilitado pode ser dificultado pelo excesso de informaccedilatildeo A

informaccedilatildeo deve ser devidamente filtrada de tal forma que apenas aquela com relevacircncia para

cada situaccedilatildeo seja considerada

DISPONIBILIDADE ndash Ainda que a informaccedilatildeo verifique os trecircs requisitos anteriores a sua

utilidades poderaacute ser posta em causa se natildeo puder ser disponibilizada de forma imediata no

momento em que eacute solicitada As decisotildees muito ponderadas com o longo periacuteodo de gestaccedilatildeo

satildeo cada vez mais situaccedilotildees do passado Hoje dadas as caracteriacutesticas do meio envolvente oprocesso de tomada de decisatildeo tem que ser quase instantacircneo Para isso a informaccedilatildeo tem que

ser disponibilizada rapidamente caso contraacuterio deixa de ser uacutetil

LEGIBILIDADE - Esta condiccedilatildeo apesar de apresentada em uacuteltimo lugar natildeo eacute por isso

menos importante A informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada

De fato de nada vale que a informaccedilatildeo seja atual precisa relevante e disponibilizada em

tempo oportuno se natildeo puder ser entendida A forma como eacute disponibilizada tem tambeacutem grande

importacircncia informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada A forma como eacutedisponibilizada tem tambeacutem grande importacircncia

Quanto aos requisitos de atualidade e correccedilatildeo da informaccedilatildeo para que esta possa ser

correta e atual os dados de onde eacute derivada tecircm forccedilosamente que ser precisos e atualizados

Quanto aos requisitos de relevacircncia disponibilidade e legibilidade da informaccedilatildeo estes tecircm mais

a ver com os meios utilizados para o processamento dos dados

Como eacute que a informaccedilatildeo eacute organizada

A organizaccedilatildeo da informaccedilatildeo eacute efetuada de acordo com criteacuterios distintos como

Hierarquia dos seus componentes

O tipo de assunto a que se refere

Forma de armazenamento

Quanto agrave HIERARQUIA DOS COMPONENTES DA INFORMACcedilAtildeO esta eacute organizada em

Caracteres Campos Registros Ficheiros Caracteres - podem ser numeacutericos alfabeacuteticos ou

sinais de pontuaccedilatildeo Campos - satildeo conjuntos de caracteres que identificam um componente de

um registo Registos - satildeo agrupamentos de campos descritivos de uma realidade Ficheiros - satildeo

conjuntos de registos cuja informaccedilatildeo eacute estruturalmente analoacutegica

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2265

22

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Quanto AO TIPO DE ASSUNTO a que se refere agrave informaccedilatildeo

Esta pode ser como que etiquetada de modo a tornar faacutecil a sua procura e a evitar perdas

de tempo

Quando a informaccedilatildeo estaacute armazenada em ficheiros estes indicam o seu tipo atraveacutes de

uma extensatildeo ao nome do ficheiro

Algumas das extensotildees mais comuns satildeo

- COM ficheiro de comandos - BACK backup ou coacutepias de seguranccedila- EXE executaacuteveis - SYS ficheiros de sistema

- BAT processamento batch - XLS folha de caacutelculo provenientes do Excel

- TXT texto no formato ASCII - PPT apresentaccedilotildees provenientes do PowerPoint

- PAS programas em Linguagem Pascal - MBD base de dados provenientes do Access

- C programas em Linguagem C - DOC documentos provenientes de um processador de

texto

Quanto Agrave FORMA DE ARMAZENAMENTO da informaccedilatildeoRelativamente ao armazenamento por exemplo no disco riacutegido do computador a

informaccedilatildeo eacute organizada em diretorias cujo nome revela o tipo de ficheiros que aiacute se encontram

podendo cada diretorias conter diversas subdiretorias

Organizaccedilatildeo dos dados num Computador

Os dados que fornecemos a um computador para processar podem ser de trecircs tipos

quantitativos classificativos referenciais

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2365

23

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Dados quantitativos - satildeo os que exprimem quantidades e por isso normalmente servem

de base para caacutelculos aritmeacuteticos Exemplo a ficha escolar as notas do periacuteodo as faltas o total

das faltas

bull Dados classificativos - satildeo os que descrevem ou especificam os elementos envolvidos e

quantificados Normalmente servem de complemento aos dados quantitativos identificando

pessoas objetos situaccedilotildees etc Natildeo servem portanto para elementos de caacutelculo Exemplo a

ficha escolar o nome do aluno o nome da disciplina o nome do professor

bull Dados referenciais - satildeo dados que permitem controlar e referenciar os elementos

tratados Exemplo a ficha escolar o ano letivo o nuacutemero do aluno a turma

Para fixar

Escreva de forma resumida como podemos organizar os dados

_________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

Tipos de Operaccedilotildees realizadas sobre os dados

O tipo de operaccedilotildees efetuadas depende dos objetivos do processamento e igualmente dostipos de dados nele envolvidos pois o computador pode processar dados numeacutericos ou natildeo

numeacutericos Assim temos como operaccedilotildees possiacuteveis num processamento

bull Operaccedilotildees aritmeacuteticas - satildeo efetuadas apenas sobre dados numeacutericos e satildeo

basicamente constituiacutedas por somas subtraccedilotildees multiplicaccedilotildees divisotildees e outras similares

bull Operaccedilotildees loacutegicas - satildeo efetuadas sobre dados numeacutericos ou natildeo numeacutericos Estas

operaccedilotildees satildeo tambeacutem por vezes designadas por operaccedilotildees de comparaccedilatildeo

bull Operaccedilotildees de movimentaccedilatildeo interna - satildeo efetuadas sobre qualquer tipo de dados e

consistem na coacutepia e mudanccedila de localizaccedilatildeo interna dos dados na memoacuteria do computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2465

24

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Operaccedilatildeo de InputOutput - satildeo as operaccedilotildees que envolvem os oacutergatildeos de entrada e

saiacuteda permitindo a comunicaccedilatildeo entre o operador e a maacutequina

Funccedilotildees do processamento de dados

Considera-se como processamento de dados o conjunto de todas as operaccedilotildees efetuadas desde

a entrada dos dados ateacute agrave saiacuteda da informaccedilatildeo Todas estas operaccedilotildees de vaacuterios tipos satildeo

normalmente associadas a seis funccedilotildees do processamento de dados input ordenaccedilatildeo

processamento armazenamento output e controle

bull Input - fase de seleccedilatildeo e aquisiccedilatildeo dos dados pelo computador

bull Ordenaccedilatildeo - esta eacute uma funccedilatildeo auxiliar O seu objetivo eacute dispor os dados de uma forma

organizada (ordenada) de modo a facilitar o seu tratamento Se os dados se mantiverem

ordenados segundo um determinado criteacuterio preacute-definido a sua pesquisa eacute mais faacutecil o que faz

aumentar a velocidade do processamento

bull Processamento - considera-se processamento ao conjunto de todas as operaccedilotildees

efetuadas internamente pelo computador na manipulaccedilatildeo dos dados

bull Armazenamento - esta eacute uma funccedilatildeo muito importante que permite posteriormente

analisar as etapas e os resultados do processamento

bull Output - eacute a obtenccedilatildeo de resultados sob a forma de informaccedilatildeo significativa para as

pessoas a quem se destina

bull Controle - a sua finalidade eacute detectar corrigir e eliminar possiacuteveis erros ou afastamentosem relaccedilatildeo aos objetivos inicialmente traccedilados

Utilidade de um banco de dados

Um banco de dados permite pocircr dados agrave disposiccedilatildeo de usuaacuterios para uma consulta uma

introduccedilatildeo ou uma atualizaccedilatildeo assegurando-se dos direitos atribuiacutedos a estes uacuteltimos Isso eacute

ainda mais uacutetil quando os dados informaacuteticos satildeo cada vez mais numerosos

Um banco de dados pode ser local quer dizer utilizaacutevel em uma maacutequina por um usuaacuterio

ou repartida quer dizer que as informaccedilotildees satildeo armazenadas em maacutequinas distantes eacessiacuteveis por rede A vantagem essencial da utilizaccedilatildeo dos bancos de dados eacute a possibilidade

de poder ser acessada por vaacuterios usuaacuterios simultaneamente

A gestatildeo dos bancos de dados

A fim de poder controlar os dados bem como os usuaacuterios a necessidade de um sistema de

gestatildeo fez-se sentir rapidamente A gestatildeo do banco de dados faz-se graccedilas a um sistema

chamado SGBD (sistema de gestatildeo de bancos de dados) ou em inglecircs DBMS (Database

managment system) O SGBD eacute um conjunto de serviccedilos (aplicaccedilotildees software) que permitem

gerenciar os bancos de dados quer dizer

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2565

25

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Permitir o acesso aos dados de maneira simples

Autorizar um acesso agraves informaccedilotildees a muacuteltiplos usuaacuterios

Manipular os dados presentes no banco de dados (inserccedilatildeo supressatildeo modificaccedilatildeo)

O SGBD pode decompor-se em trecircs subsistemas

O sistema de gestatildeo de arquivos permite o armazenamento das informaccedilotildees num suporte

fiacutesico

O SGBD interno gerencia a emissatildeo das informaccedilotildees

O SGBD externo representa a interface com o usuaacuterio

Bancos de dados satildeo conjuntos de dados com uma estrutura regular que organizam

informaccedilatildeo Um banco de dados normalmente agrupa informaccedilotildees utilizadas para um mesmo fim

O modelo de dados mais adotado hoje em dia eacute o modelo relacional onde as estruturas

tecircm a forma de tabelas compostas por linhas e colunas

Resumindo um banco de dados eacute uma coleccedilatildeo de dados relacionados Entende-se por

dado toda a informaccedilatildeo que pode ser armazenada e que apresenta algum significado impliacutecito

dentro do contexto ao qual ele se aplica Por exemplo num sistema bancaacuterio uma pessoa eacuteidentificada pelo seu cpf(cliente) Em um sistema escolar a pessoa eacute identificada pelo seu nuacutemero

de matriacutecula(aluno) Aleacutem disso os dados que seratildeo armazenados em cada situaccedilatildeo podem

diferir consideravelmente

Atividades

1) Onde utilizar um banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2665

26

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2) Como funciona um sistema gerenciador de banco de dados

3) Como funciona o modelo relacional

Modelo Relacional

O modelo relacional eacute uma teoria matemaacutetica desenvolvida por Edgar Frank Codd para

descrever como as bases de dados devem funcionar Embora esta teoria seja a base para o

software de bases de dados relacionais muito poucos sistemas de gestatildeo de bases de dados

seguem o modelo de forma restrita e todos tecircm funcionalidades que violam a teoria desta forma

variando a complexidade e o poder A discussatildeo se esses bancos de dados merecem ser

chamados de relacional ficou esgotada com tempo com a evoluccedilatildeo dos bancos existentes

De acordo com a arquitetura ANSI SPARC em trecircs niacuteveis os Bancos de dados

relacionais consistem de trecircs componentes

bull uma coleccedilatildeo de estruturas de dados formalmente chamadas de relaccedilotildees ou

informalmente tabelas compondo o niacutevel conceitual

bull uma coleccedilatildeo dos operadores a aacutelgebra e o caacutelculo relacionais que constituem a base da

linguagem SQL

bull uma coleccedilatildeo de restriccedilotildees da integridade definindo o conjunto consistente de estados de

base de dados e de alteraccedilotildees de estados As restriccedilotildees de integridade podem ser de quatro

tipos

bull domiacutenio (ou tipo de dados) bull atributo

bull restriccedilotildees de base de dados

De acordo com o Princiacutepio de Informaccedilatildeo toda informaccedilatildeo tem de ser representada como dados

qualquer tipo de atributo representa relaccedilotildees entre conjuntos de dados

Nos bancos de dados relacionais os relacionamentos entre as tabelas natildeo satildeo codificados

explicitamente na sua definiccedilatildeo Em vez disso se fazem implicitamente pela presenccedila de

atributos chave As bases de dados relacionais permitem aos utilizadores (incluindo

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2765

27

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

programadores) escreverem consultas (queries) reorganizando e utilizando os dados de forma

flexiacutevel e natildeo necessariamente antecipada pelos projetistas originais

Esta flexibilidade eacute especialmente importante em bases de dados que podem ser utilizadas

durante deacutecadas tornando as bases de dados relacionais muito populares no meio comercial

Um dos pontos fortes do modelo relacional de banco de dados eacute a possibilidade de

definiccedilatildeo de um conjunto de restriccedilotildees de integridade Estas definem os conjuntos de estados e

mudanccedilas de estado consistentes do banco de dados determinando os valores que podem e os

que natildeo podem ser armazenados

Aplicaccedilotildees de bancos de dados

Bancos de dados satildeo usados em muitas aplicaccedilotildees enquanto atravessando virtualmente a

gama inteira de software de computador Bancos de dados eacute o meacutetodo preferido de

armazenamento para aplicaccedilotildees multiusuaacuterias grandes onde a coordenaccedilatildeo entre muitosusuaacuterios eacute necessaacuteria Ateacute mesmo usuaacuterios individuais os acham convenientes entretanto e

muitos programas de correio eletrocircnico e os organizadores pessoais estatildeo baseados em

tecnologia de banco de dados standard

Aplicativo de Banco de Dados

Um aplicativo de banco de dados eacute um tipo de software exclusivo para gerenciar um banco

de dados Aplicativos de banco de dados abrangem uma vasta variedade de necessidades e

objetivos de pequenas ferramentas como uma agenda ateacute complexos sistemas empresariaispara desempenhar tarefas como a contabilidade

O termo Aplicativo de Banco de dados usualmente se refere a softwares que oferecem

uma interface para o banco de dados Exemplos de aplicativos de banco de dados satildeo Microsoft

Visual FoxPro Microsoft Access dBASE FileMaker (em certa medida) HyperCard MySQL

PostgreSQL Microsoft SQL Server e Oracle

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2865

28

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Capiacutetulo 3 - HARDWARE E SOFTWARE

O QUE Eacute O HARDWARE

No acircmbito da informaacutetica eacute dada a designaccedilatildeo de hardware a todos os componentes

fiacutesicos que fazem parte de um sistema informaacutetico incluiacutedo toda a parte fiacutesica de um computador

(nomeadamente os processadores motherbord disco riacutegido placas de som placas de viacutedeo

memoacuterias etc) e todos os perifeacutericos (tais como teclados mouse monitores impressoras

scanners modems entre outros)

Peccedilas de um computador

Se vocecirc usa um computador desktop jaacute deve saber que natildeo existe uma parte uacutenica

chamada computador Um computador eacute na verdade um sistema de muitas partes funcionando

em conjunto As partes fiacutesicas que vocecirc pode ver e tocar satildeo denominadas

coletivamente hardware (O software por outro lado se refere agraves instruccedilotildees ou programas que

dizem ao hardware o que fazer)

A ilustraccedilatildeo a seguir mostra os dispositivos de hardware mais comuns em um sistema de

computador desktop Seu sistema pode ter uma aparecircncia um pouco diferente mas

provavelmente possui a maioria destas peccedilas Um computador laptop possui peccedilas semelhantes

mas as combina em um uacutenico pacote do tamanho de um caderno

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2965

29

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Sistema de computador desktop

Unidade de sistema

A unidade de sistema (Gabinete) eacute o nuacutecleo de um sistema de computador Normalmente

eacute uma caixa retangular colocada sobre a mesa ou embaixo dela Dentro dessa caixa estatildeo os

componentes eletrocircnicos que processam as informaccedilotildees O mais importante desses

componentes eacute a CPU (unidade de processamento central) ou microprocessador que atua como

o ceacuterebro do computador Outro componente eacute a memoacuteria RAM que armazena

temporariamente informaccedilotildees utilizadas pela CPU enquanto o computador estaacute ligado As

informaccedilotildees gravadas na RAM satildeo apagadas quando o computador eacute desligado

Quase todas as outras partes do computador se conectam agrave unidade de sistema por meio

de cabos Os cabos satildeo conectados aportas (aberturas) especiacuteficas geralmente na parte traseira

da unidade de sistema O hardware que natildeo faz parte da unidade de sistema eacute

chamado dispositivo perifeacuterico ou simplesmente dispositivo

Unidade de sistema

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3065

30

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Armazenamento

O computador possui uma ou mais unidades de disco ou seja dispositivos que armazenam

informaccedilotildees em um disco de plaacutestico ou de metal O disco preserva as informaccedilotildees mesmo

quando o computador estaacute desligado

Unidade de disco riacutegido

A unidade de disco riacutegido do computador armazena informaccedilotildees em um disco riacutegido que eacute um

prato riacutegido ou pilha de pratos com uma superfiacutecie magneacutetica Como os discos riacutegidos podem

reter uma grande quantidade de informaccedilotildees normalmente eles funcionam como principal meio

de armazenamento do computador guardando praticamente todos os programas e arquivos Em

geral a unidade de disco riacutegido fica localizada dentro da unidade de sistema

Unidade de disco riacutegidoUnidades de CD e DVD

Hoje em dia quase todos os computadores vecircm equipados com uma unidade de CD ou DVD

geralmente localizada na frente da unidade de sistema As unidades de CD usam lasers para ler

(recuperar) dados de um CD Muitas delas tambeacutem podem gravar dados em CDs Se vocecirc tiver

uma unidade de disco gravaacutevel poderaacute armazenar coacutepias de seus arquivos em CDs vazios A

unidade de CD tambeacutem serve para tocar CDs de muacutesica no computador

CD

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3165

31

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

As unidades de DVD fazem o mesmo que as unidades de CD e tambeacutem lecircem DVDs Se vocecirc

tiver uma unidade de DVD poderaacute ver filmes no computador Muitas unidades de DVD podem

gravar dados em DVDs vazios

Dica

Se vocecirc tiver uma unidade de CD ou DVD gravaacutevel faccedila backup (copie) periodicamente de seus

arquivos importantes em CDs ou DVDs Dessa forma caso venha a ocorrer alguma falha no disco

riacutegido vocecirc natildeo perderaacute os dados

Unidade de disquete

As unidades de disquete armazenam informaccedilotildees em discos tambeacutem chamados discos

flexiacuteveis ou disquetes Comparado a CDs e DVDs os disquetes podem armazenar apenas uma

pequena quantidade de dados Eles tambeacutem recuperam informaccedilotildees de forma mais lenta e satildeo

mais vulneraacuteveis a danos Por esses motivos as unidades de disquete satildeo cada vez menosusadas embora ainda sejam incluiacutedas em alguns computadores

Disquete

Por que estes discos satildeo chamados de disquetes Apesar de a parte externa ser composta de

plaacutestico riacutegido isso eacute apenas a capa O interior do disco eacute feito de um material de vinil fino e

flexiacutevel

Mouse

Mouse eacute um pequeno dispositivo usado para apontar e selecionar itens na tela do computador

Embora existam mouses de vaacuterias formas o modelo mais comum se assemelha a um rato (como

diz o nome em inglecircs) Ele eacute pequeno e alongado sendo conectado agrave unidade de sistema por um

cabo comprido que faz lembrar uma cauda Alguns mouses mais novos satildeo sem fio

Mouse

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3265

32

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O mouse geralmente possui dois bototildees um botatildeo principal (normalmente o da esquerda) e um

botatildeo secundaacuterio Muitos mouses tambeacutem tecircm uma roda entre os dois bototildees que permite

percorrer as telas de informaccedilotildees

Ponteiros do mouse

Agrave medida que vocecirc move o mouse com a matildeo um ponteiro na tela se move na mesma direccedilatildeo

(A aparecircncia do ponteiro pode mudar dependendo da sua posiccedilatildeo na tela) Quando quiser

selecionar um item aponte para ele e clique no botatildeo principal ou seja pressione-o e solte-o

Apontar e clicar com o mouse eacute a principal maneira de interagir com o computador Para mais

informaccedilotildees consulte Usando o mouse

Teclado

A finalidade principal do teclado eacute digitar texto no computador Ele possui teclas para letras e

nuacutemeros exatamente como em uma maacutequina de escrever A diferenccedila estaacute nas teclas especiais

As teclas de funccedilatildeo localizadas na linha superior executam funccedilotildees diferentes dependendo

de onde satildeo usadas

O teclado numeacuterico localizado agrave direita na maioria dos teclados permite inserir nuacutemeros

rapidamente

As teclas de navegaccedilatildeo como as teclas de seta permitem mover sua posiccedilatildeo dentro de

documentos ou paacuteginas da Web

Teclado

Vocecirc tambeacutem pode usar o teclado para executar muitas das mesmas tarefas que executa com

um mouse Para mais informaccedilotildees consulte Usando o teclado

Monitor

O monitor exibe informaccedilotildees em forma visual usando texto e elementos graacuteficos A parte do

monitor que exibe as informaccedilotildees eacute chamada tela Como a tela de uma televisatildeo a tela de um

computador pode mostrar imagens paradas ou em movimento

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3365

33

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Existem dois tipos baacutesicos de monitores CRT (tubo de raios catoacutedicos) e LCD (viacutedeo de cristal

liacutequido) Ambos produzem imagens niacutetidas mas os monitores LCD levam vantagem por serem

mais finos e mais leves

Monitor LCD (agrave esquerda) monitor CRT (agrave direita)

Impressora

Uma impressora transfere dados de um computador para o papel Vocecirc natildeo precisa de

impressora para usar o computador mas se tiver uma poderaacute imprimir emails cartotildees convites

anuacutencios e outros materiais Muitas pessoas tambeacutem preferem imprimir suas fotos em casa

Os dois principais tipos de impressora satildeo a jato de tinta e a laser As impressoras a jato de tinta

satildeo as mais populares para uso domeacutestico Elas podem imprimir em preto e branco ou em cores

e produzem fotos de alta qualidade quando usadas com papel especial As impressoras a laser

satildeo mais raacutepidas e mais adequadas para uso intenso

Impressora a jato de tinta (agrave esquerda) impressora a laser (agrave direita)

Alto-falantes

Os alto-falantes satildeo usados para tocar som Eles podem vir embutidos na unidade de sistema ou

ser conectados com cabos Satildeo eles que permitem ouvir muacutesica e efeitos de som no computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3465

34

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Alto-falantes do computador

Modem

Para conectar o computador agrave Internet vocecirc precisa de um modem um dispositivo que envia e

recebe informaccedilotildees do computador por linha telefocircnica ou cabo de alta velocidade Agraves vezes os

modems vecircm embutidos na unidade de sistema mas os de alta velocidade normalmente satildeo

componentes separados

Modem a cabo

O QUE Eacute O SOFTWARE

O Software eacute uma aplicaccedilatildeo ou programa do computador escrita numa determinadalinguagem interpretaacutevel por uma determinada maacutequina (o processador de um computador ou

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3565

35

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

outro equipamento) e que permite executar determinadas tarefas para as quais o software foi

projetado Estes programas satildeo compostos por uma sequecircncia de instruccedilotildees (os comandos) e de

declaraccedilotildees de dados as quais satildeo armazenaacuteveis num meio digital

Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por um

computador com o objetivo de executar tarefas especiacuteficas Tambeacutem pode ser definido como

os programas que comandam o funcionamento de um computador

Em um computador o software eacute classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer

instruccedilotildees para o hardware O hardware eacute toda a parte fiacutesica que constitui o computador por

exemplo a CPU a memoacuteria e os dispositivos de entrada e saiacuteda O software eacute constituiacutedo por

todos os programas que existem para um referido sistema quer sejam produzidos pelo proacuteprio

utente ou pelo fabricante do computador

O termo inglecircs software foi usado pela primeira vez em 1958 em um artigo escrito pelo cientistaamericano John Wilder Tukey Foi tambeacutem ele o responsaacutevel por introduzir o termo bit para

designar diacutegito binaacuterio

Os softwares podem ser classificados como

SOFTWARE DE SISTEMA

Geralmente dividido em SISTEMAS OPERACIONAIS e PROGRAMAS UTILITAacuteRIOS Para

comeccedilar os Sist Operacionais satildeo de grande importacircncia pois eles nos datildeo a opccedilatildeo de dizer ao

computador o que ele deve fazer Dois exemplos bastante conhecidos do nosso puacuteblico satildeoo Mac o Windows e o Linux Os Programas utilitaacuterios geralmente satildeo softwares de menor porte

com funccedilotildees mais especificas tipo Verificaccedilatildeo de Disco Coacutepias de Seguranccedila entre outros

SOFTWARE APLICATIVO

Neste tipo de software se enquadram todos aqueles programas que satildeo utilizados na execuccedilatildeo

de tarefas especiacuteficas Posso citar vaacuterios exemplos mas os mais comuns satildeo os processadores

de texto como o Word que servem para trabalhar com os mais diversos tipos de textos emitir

etiquetas e fazer formulaacuterios as planilhas eletrocircnicas como o Excel satildeo poderosas ferramentas

de caacutelculos que facilitam tanto aquele trabalho aacuterduo de matemaacutetica fazer graacuteficos com real

representaccedilatildeo dos dados eacute uma coisa muito boa pra quem precisa e por uacuteltimo o que muitos

usam mas natildeo sabem o nome ao certo que satildeo os Browsers ou Navegadores softwares usados

para navegar na Web dentre eles os mais conhecidos atualmente satildeo Windows Internet

Explorer Firefox Google Chrome Opera e Safaacuteri

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3665

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3765

37

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

hoje eles satildeo bastante usados em situaccedilotildees de treinamentos de pessoas para enfrentar casos no

seu dia-a-dia

SOFTWARE DE JOGOS

Geralmente satildeo softwares relacionados a entretenimento para proporcionar lazer e diversatildeo

Dispotildeem de muitos recursos interativos e existem de todos os tipos desde estrateacutegias ateacute

simulaccedilotildees reais de muitas coisas como corridas (Need for Speed) ateacute mesmo de vida como o

Second Life

SOFTWARES ABERTOS

Satildeo aqueles que permitem que o usuaacuterio produza com liberdade e criatividade se classificam

nessa categoria aqueles softwares de apresentaccedilotildees bancos de dados e vaacuterios outros

Para fixar

Descreva uma definiccedilatildeo para os tipos de softwares

Software de Sistema_____________________________________________________________

Software Aplicativo ______________________________________________________________

Software de Linguagem __________________________________________________________

Software abertos _______________________________________________________________

Capiacutetulo 4 - Conceitos Baacutesicos de Banco de Dados

Segundo Korth um banco de dados ldquoeacute uma coleccedilatildeo de dados inter -relacionados

representando informaccedilotildees sobre um domiacutenio especiacuteficordquo ou seja sempre que for possiacutevel

agrupar informaccedilotildees que se relacionam e tratam de um mesmo assunto posso dizer que tenho

um banco de dados

Podemos exemplificar situaccedilotildees claacutessicas como uma lista telefocircnica um cataacutelogo de CDs ou um

sistema de controle de RH de uma empresa

Jaacute um sistema de gerenciamento de banco de dados (SGBD) eacute um software que possui

recursos capazes de manipular as informaccedilotildees do banco de dados e interagir com o usuaacuterio

Exemplos de SGBDs satildeo Oracle SQL Server DB2 PostgreSQL MySQL o proacuteprio Access ouParadox entre outros

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3865

38

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Por uacuteltimo temos que conceituar um sistema de banco de dados como o conjunto de quatro

componentes baacutesicos dados hardware software e usuaacuterios Date conceituou que ldquosistema de

bancos de dados pode ser considerado como uma sala de arquivos eletrocircnicardquo A Figura 1 ilustra

os componentes de um sistema de banco de dados

Componentes de um sistema de banco de dados

Os objetivos de um sistema de banco de dados satildeo o de isolar o usuaacuterio dos detalhes

internos do banco de dados (promover a abstraccedilatildeo de dados) e promover a independecircncia dos

dados em relaccedilatildeo agraves aplicaccedilotildees ou seja tornar independente da aplicaccedilatildeo a estrateacutegia de

acesso e a forma de armazenamento

Abstraccedilatildeo de dados

O sistema de banco de dados deve garantir uma visatildeo totalmente abstrata do banco de

dados para o usuaacuterio ou seja para o usuaacuterio do banco de dados pouco importa qual unidade de

armazenamento estaacute sendo usada para guardar seus dados contanto que os mesmos estejam

disponiacuteveis no momento necessaacuterio

Esta abstraccedilatildeo se daacute em trecircs niacuteveis (Figura 2) Niacutevel de visatildeo do usuaacuterio as partes do banco de dados que o usuaacuterio tem acesso de

acordo com a necessidade individual de cada usuaacuterio ou grupo de usuaacuterios

Niacutevel conceitual define quais os dados que estatildeo armazenados e qual o relacionamento

entre eles

Niacutevel fiacutesico eacute o niacutevel mais baixo de abstraccedilatildeo em que define efetivamente de que maneira

os dados estatildeo armazenados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3965

39

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 2 Niacuteveis de abstraccedilatildeo

Projeto de banco de dados

Todo bom sistema de banco de dados deve apresentar um projeto que visa a organizaccedilatildeo das

informaccedilotildees e utilizaccedilatildeo de teacutecnicas para que o futuro sistema obtenha boa performance e

tambeacutem facilite infinitamente as manutenccedilotildees que venham a acontecer

O projeto de banco de dados se daacute em duas fases

Modelagem conceitual Projeto loacutegico

Estas duas etapas se referem a um sistema de banco de dados ainda natildeo implementado ou seja

que ainda natildeo exista um novo projeto Para os casos em que o banco de dados jaacute exista mas eacute

um sistema legado por exemplo ou um sistema muito antigo sem documentaccedilatildeo o processo de

projeto de banco de dados se daraacute atraveacutes da utilizaccedilatildeo de uma teacutecnica chamada de Engenharia

Reversa que seraacute visto em outra oportunidade

Modelo conceitual

Eacute a descriccedilatildeo do BD de maneira independente ao SGBD ou seja define quais os dados

que apareceratildeo no BD mas sem se importar com a implementaccedilatildeo que se daraacute ao BD Desta

forma haacute uma abstraccedilatildeo em niacutevel de SGBD

Uma das teacutecnicas mais utilizadas dentre os profissionais da aacuterea eacute a abordagem entidade-

relacionamento (ER) onde o modelo eacute representado graficamente atraveacutes do diagrama entidade-

relacionamento (DER) (Figura 3)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 13: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1365

13

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

A criaccedilatildeo do transistor e das memoacuterias magneacuteticas contribuiu para o enorme avanccedilo dos

computadores da eacutepoca O transistor permitiu o aumento da velocidade e da confiabilidade do

processamento as memoacuterias magneacuteticas permitiram o acesso mais raacutepido aos dados maior

capacidade de armazenamento e computadores menores

Surgiram os primeiros sistemas operacionais para tentar automatizar as tarefas manuais

ateacute entatildeo realizadas e as primeiras linguagens de programaccedilatildeo como Assembly e Fortran Os

programas deixaram de ser feitos diretamente no hardware o que facilitou enormemente o

processo de desenvolvimento de programas Surgiu o processamento em batch em que um lote

(batch) de programas e de dados era submetido ao computador por vez

Terceira geraccedilatildeo (1966-1980)

Circuitos Integrados e Multiprogramaccedilatildeo

Por meio dos circuitos integrados e posteriormente dos microprocessadores foi possiacutevelviabilizar e difundir o uso de sistemas computacionais por empresas devido agrave diminuiccedilatildeo de seus

custos de aquisiccedilatildeo Houve um aumento no poder de processamento e diminuiccedilatildeo no tamanho

dos equipamentos

A evoluccedilatildeo dos processadores de entradasaiacuteda permitiu que enquanto um programa

esperasse por uma operaccedilatildeo de leituragravaccedilatildeo o processador executasse um outro programa

Para tal a memoacuteria foi dividida em particcedilotildees em que um programa esperava sua vez para ser

processado A essa teacutecnica de compartilhamento da memoacuteria principal e processador deu-se onome de multiprogramaccedilatildeo

QUARTA GERACcedilAtildeO (1981-1990)

Computadores Pessoais

Os mini e superminicomputadores se firmaram no mercado e os microcomputadores

ganharam um grande impulso Surgem as estaccedilotildees de trabalho (workstations) que apesar de

monousuaacuterias permitem que se executem diversas tarefas concorrentemente criando o conceito

de multitarefa

No final dos anos 80 os computadores tiveram um grande avanccedilo decorrente de aplicaccedilotildees que

exigiam um enorme volume de caacutelculos Para acelerar o processamento foram adicionados

outros processadores exigindo dos sistemas operacionais novos mecanismos de controle e

sincronismo Com o multiprocessamento foi possiacutevel a execuccedilatildeo de mais de um programa

simultaneamente ou ateacute de um mesmo programa por mais de um processador Foram

introduzidos processadores vetoriais e teacutecnicas de paralelismo de processamento fazendo com

que os computadores se tornassem ainda mais poderosos

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1465

14

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O uso das redes distribuiacutedas se difundiu por todo o mundo permitindo o acesso a outros

sistemas de computaccedilatildeo independentemente de cidade paiacutes e ateacute mesmo fabricante Os

softwares de rede passaram a estar intimamente relacionados com o sistema operacional de cada

maacutequina e surgem os sistemas operacionais de rede

QUINTA GERACcedilAtildeO (1991ATUALMENTE)

Houve grandes avanccedilos em termos de hardware software e telecomunicaccedilotildees como

consequecircncia da evoluccedilatildeo das aplicaccedilotildees que necessitavam cada vez mais de capacidade de

processamento e armazenamento de dados Sistemas especialistas sistemas multimiacutedia bancos

de dados distribuiacutedos inteligecircncia artificial e redes neurais satildeo apenas alguns exemplos da

necessidade cada vez maior de informaccedilatildeo e de capacidade de processamento O conceito de

processamento distribuiacutedo eacute explorado nos sistemas operacionais de forma que suas funccedilotildees

estejam espalhadas por vaacuterios processadores atraveacutes de redes de computadores A deacutecada de 90 foi definitiva para a consolidaccedilatildeo dos sistemas operacionais baseados em

interfaces graacuteficas

Atualmente temos as plataformas multicore (vaacuterios nuacutecleos) disponiacuteveis em computadores

pessoais e ateacute notebooks possibilitando cada vez mais a paralelizaccedilatildeo de aplicaccedilotildees e elevando

em muito o tempo de execuccedilatildeo dos programas Os fanaacuteticos pelos jogos de computador que o

digam

Os sistemas operacionais - satildeo parte fundamental dos computadores satildeo responsaacuteveis pororganizar os processos (programas) que estatildeo sendo executados pelo processador criando uma

fila de processos que garante que todos receberatildeo sua parcela de processamento

Para Fixar

Escreva um breve resumo sobre o processo evolutivo dos Softwares

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________ __________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1565

15

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

PRINCIacutePAIS SISTEMAS OPERACIONAIS

Principais SO que deram iniacutecio a era Windows MCs Linux e Unix

1987 ndash Andrew Tanenbaum um professor de computaccedilatildeo holandecircs desenvolve um sistema

operacional didaacutetico simplificado mas respeitando a API do UNIX que foi batizado como Minix

1987 ndash IBM e Microsoft apresentam a primeira versatildeo do OS2 um sistema multitarefa destinado

a substituir o MS-DOS e o Windows Mais tarde as duas empresas rompem a parceria a IBM

continua no OS2 e a Microsoft investe no ambiente Windows

1991 ndash Linus Torvalds um estudante de graduaccedilatildeo Finlandecircs inicia o desenvolvimento do Linux

lanccedilando na rede Usenet o nuacutecleo 001 logo abraccedilado por centenas de programadores ao redor

do mundo

1993 ndash a Microsoft lanccedila o Windows NT o primeiro sistema 32 bits da empresa

Capiacutetulo 2 ndash Banco de Dados

Banco de dados eacute um arquivo especial que armazena dados arrumados sob forma de

tabelas ou matrizes (em linhas e colunas) Quando um conjunto de informaccedilotildees possui muitasvariaacuteveis interligadas entre si eacute aconselhaacutevel que sejam armazenadas e trabalhadas em um

banco de dados Os bancos de dados fornecem uma seacuterie de funcionalidades que natildeo satildeo

encontradas em arquivos comuns ldquoBancos de dados satildeo coleccedilotildees de informaccedilotildees que se

relacionam de forma que crie um sentidordquo Satildeo de vital importacircncia para empresas e haacute duas

deacutecadas se tornaram a principal peccedila dos sistemas de informaccedilatildeo ldquoFonte Wikipeacutediardquo

Entatildeo um banco de dados eacute uma entidade na qual eacute possiacutevel armazenar dados de maneira

estruturada e com a menor redundacircncia possiacutevel Estes dados devem poder ser utilizadas porprogramas por usuaacuterios diferentes Assim a noccedilatildeo baacutesica de dados eacute acoplada geralmente a

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1665

16

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

uma rede a fim de poder pocircr conjuntamente estas informaccedilotildees daiacute o nome banco Fala-se

geralmente de sistema de informaccedilatildeo para designar toda a estrutura que reuacutene os meios

organizados para poder compartilhar dados

DADOS amp INFORMACcedilOtildeES

Muitos consideram dados e informaccedilotildees como palavras sinocircnimas mas na verdade natildeo satildeo

Para entender o que eacute um banco de dados eacute muito importante saber a diferenccedila entre essas duas

palavras

Dados satildeo fatos brutos em sua forma primaacuteria E muitas vezes os dados podem natildeo fazer

sentido sozinhos

Informaccedilotildees consistem no agrupamento de dados de forma organizada para fazer sentido

gerar conhecimento

Por exemplo o nuacutemero 2001 isoladamente faz algum sentido Natildeo Isso eacute um dado E se eu

dissesse ldquoAno do atentado terrorista agraves torres gecircmeas 2001Prime Agora faz sentido Isso eacute

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1765

17

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

uma informaccedilatildeo Um banco de dados eacute uma estrutura de dados organizada que permite a

extraccedilatildeo de informaccedilotildees

Metadados ndash Eacute todo dado relativo a outro dado eacute chamado de metadados No exemplo anterior

do ano 2001 o dado ldquoAno do atentado terrorista agraves torres gecircmeasrdquo eacute um metadado pois ele eacute um

dado sobre o dado ldquo2001rdquo Outro exemplo mais comum em banco de dados o campo telefone da

tabela cliente tem entre outros os seguinte metadados nome (telefone) tipo (texto) tamanho (30

caracteres) obrigatoriedade (natildeo) etc

Um banco de dados eacute formado por dado e metadados Sem os metadados natildeo seria

possiacutevel organizar e extrair informaccedilotildees de um banco de dados

Para Fixar

Dados - Em informaacutetica designa-se por dados os elementos de partida que servem de base

para o tratamento e sobre os quais o computador efetua as operaccedilotildees necessaacuterias agrave tarefa emquestatildeo

Os dados satildeo uma representaccedilatildeo dos fatos conceitos ou instruccedilotildees de uma maneira

normalizada que se adapte agrave comunicaccedilatildeo interpretaccedilatildeo e processamento pelo ser humano ou

atraveacutes de maacutequinas automaacuteticas

Os dados satildeo representados por siacutembolos como por exemplo as letras do alfabeto a b c

etc mas natildeo satildeo em si a informaccedilatildeo desejada

ExemploO I O C O M B - satildeo dados mas natildeo eacute informaccedilatildeo perceptiacutevel ao homem

A informaccedilatildeo natildeo eacute mais do que dados organizados e ordenados de forma uacutetil Isto eacute informaccedilatildeo

eacute o conhecimento produzido como resultado do processamento de dados

Se processarmos os dados que tiacutenhamos anteriormente entatildeo obtemos a informaccedilatildeo

O I O C O M B - Dados

- Processamento

C O M B O I O ndash Informaccedilatildeo

Para fixar

Escreva o significado de

Dados___________________________________________________________________

_________________________________________________________________________

Informaccedilatildeo_______________________________________________________________

_________________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1865

18

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Metadados_______________________________________________________________

_________________________________________________________________________

Banco de

dados___________________________________________________________________

_________________________________________________________________________

A histoacuteria dos bancos de dados

Hoje os bancos de dados satildeo essenciais para muitas empresas e estatildeo no coraccedilatildeo de

muitos sistemas computacionais Ter acesso raacutepido agraves informaccedilotildees eacute muito importante para a

correta tomada de decisotildees em um negoacutecio Se vocecirc pretende trabalhar com desenvolvimento de

softwares com certeza precisaraacute trabalhar com bancos de dados em algum momento Conhecer

a histoacuteria dos bancos de dados e como eles evoluiacuteram eacute muito importante para entender como os

bancos de dados mais comuns satildeo organizados Entatildeo como aconteceu a evoluccedilatildeo dos bancos

de dados

Antigamente as empresas armazenavam dados em fichas de papel que eram organizadas

em arquivos fiacutesicos atraveacutes de pastas Extrair informaccedilotildees e manter esses arquivos organizados

era uma tarefa muito custosa Aleacutem disso o acesso agrave informaccedilatildeo dependia da localizaccedilatildeo

geograacutefica dos arquivos Enfim esses arquivos fiacutesicos evoluiacuteram para arquivos digitais No iniacutecio

cada entidade (clientes funcionaacuterios produtos etc) era um arquivo de dados que eram

acompanhados de um ldquosoftware simplesrdquo para manipular os dados do arquivo esses softwares

permitiam realizar operaccedilotildees de cadastro alteraccedilatildeo exclusatildeo e consulta nos arquivos digitais De

fato melhorou bastante principalmente a tarefa de consulta de informaccedilotildees poreacutem os arquivos

digitais eram ainda uma versatildeo melhorada dos arquivos fiacutesicos

Mas as entidades precisavam relacionar-se por exemplo um produto eacute fornecido por

um fornecedor e com os arquivos digitais relacionaacute-las natildeo era uma tarefa muito trivial os

ldquosoftwares simplesrdquo para manipular os arquivos digitais comeccedilaram a ficar ldquocomplexosrdquo para

permitir os relacionamentos entre entidades Entatildeo na deacutecada de 60 a empresa IBM investiu

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1965

19

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

fortemente em pesquisas para solucionar estes problemas dos bancos de dados digitais

primitivos Vaacuterios modelos de bancos de dados surgiram nesta eacutepoca dentre eles os modelos

hieraacuterquicos e rede

Em junho de 1970 o pesquisador Edgar Frank ldquoTedrdquo Codd da IBM mudou a histoacuteria dos

bancos de dados apresentando o modelo relacional no artigo intitulado ldquoA Relational Model of

Data for Large Shared Data Banksrdquo (Um modelo relacional de dados para grandes bancos de

dados compartilhados) onde o autor apresentou uma forma de usuaacuterios sem conhecimento

teacutecnico armazenarem e extraiacuterem grandes quantidades de informaccedilotildees de um banco de dados

Esse artigo foi o grande impulso para a evoluccedilatildeo dos bancos de dados a partir do artigo de ldquoTedrdquo

Codd que os cientistas aprofundaram a ideia de criar o modelo de banco de dados relacional

BANCO DE DADOS RELACIONAL

Apesar de ter sido o marco dos bancos de dados relacionais o artigo de Codd natildeo foimuito explorado no iniacutecio Soacute no final da deacutecada de 70 que foi desenvolvido um sistema baseado

nas ideias do cientista o ldquoSistema Rrdquo Junto com esse sistema foi criado a linguagem de consulta

estruturada (SQL ndash Structured Query Language) que se tornou a linguagem padratildeo para bancos

de dados relacionais Embora tenha contribuiacutedo para a evoluccedilatildeo dos bancos de dados

relacionais o ldquoSystem Rrdquo natildeo foi muito bem sucedido comercialmente mas os sistemas de banco

de dados seguintes foram baseados nele

Nos anos 80 surgiram outros bancos de dados a Oracle apresentou o Oracle 2 e a IBMo SQLDS (que se tornou DB2) ambos sistemas comerciais de bancos de dados Na sequencia

vieram SQL Server MySQL DBase III Paradox etchellip

BANCOS DE DADOS HOJE

Atualmente existem vaacuterios modelos de bancos de dados tais como orientado a objetos

orientado a documentos etc Mas o mais comum ainda eacute o banco de dados relacional A decisatildeo

entre qual modelo de banco de dados utilizarem baseia-se no tipo de dados que vocecirc pretende

armazenar Por exemplo se vocecirc for armazenar uma grande quantidade de dados em um modelo

pequeno (imagine um banco de dados para o twitter) eacute mais indicado utilizar um banco de dados

orientado a documentos a um banco de dados relacional Muitas questotildees envolvem essa

decisatildeo mas natildeo eacute uma questatildeo de superioridade entre uma ou outra tecnologia todas tecircm proacutes

e contras e satildeo mais indicadas ou natildeo para cada problema

Para fixar

Faccedila um breve resumo sobre o surgimos dos bancos de dados

______________________________________________________________________________

______________________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2065

20

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

Dados amp Informaccedilatildeo

A informaccedilatildeo eacute encarada atualmente como um dos recursos mais importantes de uma

organizaccedilatildeo contribuindo decisivamente para a sua maior ou menor competitividade De fato

com o aumento da concorrecircncia tornou-se vital melhorar as capacidades de decisatildeo a todos osniacuteveis

Hoje mais que nunca a tomada de decisatildeo nas organizaccedilotildees eacute um processo complexo

dada a qualidade de informaccedilatildeo em jogo a sua complexidade e a frequecircncia com que se altera

No entanto para que possa ser utilizada com um apoio eficaz agrave tomada de decisatildeo a informaccedilatildeo

soacute tecircm valor se verificarem simultaneamente algumas condiccedilotildees

ATUALIDADE ndash O valor da informaccedilatildeo dependeraacute em grande parte da sua atualidade

Dado o dinamismo verificado em todos os setores da sociedade em geral e do ambiente

empresarial em particular o periacuteodo de validade da informaccedilatildeo eacute cada vez mais curto Torna-se

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2165

21

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

necessaacuterio dispor de fontes de informaccedilatildeo que acompanhem continuamente essas modificaccedilotildees

Soacute com base em informaccedilatildeo atualizada se podem tomar decisotildees acertadas

CORRECcedilAtildeO ndash Natildeo basta que a informaccedilatildeo seja atual eacute tambeacutem necessaacuterio que na

medida do possiacutevel seja rigorosa Soacute com informaccedilatildeo correta se pode decidir com confianccedila

RELEVAcircNCIA ndash Dado o grande de volume de informaccedilatildeo envolvida o processo de tomada

de decisatildeo ao contraacuterio de ser facilitado pode ser dificultado pelo excesso de informaccedilatildeo A

informaccedilatildeo deve ser devidamente filtrada de tal forma que apenas aquela com relevacircncia para

cada situaccedilatildeo seja considerada

DISPONIBILIDADE ndash Ainda que a informaccedilatildeo verifique os trecircs requisitos anteriores a sua

utilidades poderaacute ser posta em causa se natildeo puder ser disponibilizada de forma imediata no

momento em que eacute solicitada As decisotildees muito ponderadas com o longo periacuteodo de gestaccedilatildeo

satildeo cada vez mais situaccedilotildees do passado Hoje dadas as caracteriacutesticas do meio envolvente oprocesso de tomada de decisatildeo tem que ser quase instantacircneo Para isso a informaccedilatildeo tem que

ser disponibilizada rapidamente caso contraacuterio deixa de ser uacutetil

LEGIBILIDADE - Esta condiccedilatildeo apesar de apresentada em uacuteltimo lugar natildeo eacute por isso

menos importante A informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada

De fato de nada vale que a informaccedilatildeo seja atual precisa relevante e disponibilizada em

tempo oportuno se natildeo puder ser entendida A forma como eacute disponibilizada tem tambeacutem grande

importacircncia informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada A forma como eacutedisponibilizada tem tambeacutem grande importacircncia

Quanto aos requisitos de atualidade e correccedilatildeo da informaccedilatildeo para que esta possa ser

correta e atual os dados de onde eacute derivada tecircm forccedilosamente que ser precisos e atualizados

Quanto aos requisitos de relevacircncia disponibilidade e legibilidade da informaccedilatildeo estes tecircm mais

a ver com os meios utilizados para o processamento dos dados

Como eacute que a informaccedilatildeo eacute organizada

A organizaccedilatildeo da informaccedilatildeo eacute efetuada de acordo com criteacuterios distintos como

Hierarquia dos seus componentes

O tipo de assunto a que se refere

Forma de armazenamento

Quanto agrave HIERARQUIA DOS COMPONENTES DA INFORMACcedilAtildeO esta eacute organizada em

Caracteres Campos Registros Ficheiros Caracteres - podem ser numeacutericos alfabeacuteticos ou

sinais de pontuaccedilatildeo Campos - satildeo conjuntos de caracteres que identificam um componente de

um registo Registos - satildeo agrupamentos de campos descritivos de uma realidade Ficheiros - satildeo

conjuntos de registos cuja informaccedilatildeo eacute estruturalmente analoacutegica

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2265

22

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Quanto AO TIPO DE ASSUNTO a que se refere agrave informaccedilatildeo

Esta pode ser como que etiquetada de modo a tornar faacutecil a sua procura e a evitar perdas

de tempo

Quando a informaccedilatildeo estaacute armazenada em ficheiros estes indicam o seu tipo atraveacutes de

uma extensatildeo ao nome do ficheiro

Algumas das extensotildees mais comuns satildeo

- COM ficheiro de comandos - BACK backup ou coacutepias de seguranccedila- EXE executaacuteveis - SYS ficheiros de sistema

- BAT processamento batch - XLS folha de caacutelculo provenientes do Excel

- TXT texto no formato ASCII - PPT apresentaccedilotildees provenientes do PowerPoint

- PAS programas em Linguagem Pascal - MBD base de dados provenientes do Access

- C programas em Linguagem C - DOC documentos provenientes de um processador de

texto

Quanto Agrave FORMA DE ARMAZENAMENTO da informaccedilatildeoRelativamente ao armazenamento por exemplo no disco riacutegido do computador a

informaccedilatildeo eacute organizada em diretorias cujo nome revela o tipo de ficheiros que aiacute se encontram

podendo cada diretorias conter diversas subdiretorias

Organizaccedilatildeo dos dados num Computador

Os dados que fornecemos a um computador para processar podem ser de trecircs tipos

quantitativos classificativos referenciais

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2365

23

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Dados quantitativos - satildeo os que exprimem quantidades e por isso normalmente servem

de base para caacutelculos aritmeacuteticos Exemplo a ficha escolar as notas do periacuteodo as faltas o total

das faltas

bull Dados classificativos - satildeo os que descrevem ou especificam os elementos envolvidos e

quantificados Normalmente servem de complemento aos dados quantitativos identificando

pessoas objetos situaccedilotildees etc Natildeo servem portanto para elementos de caacutelculo Exemplo a

ficha escolar o nome do aluno o nome da disciplina o nome do professor

bull Dados referenciais - satildeo dados que permitem controlar e referenciar os elementos

tratados Exemplo a ficha escolar o ano letivo o nuacutemero do aluno a turma

Para fixar

Escreva de forma resumida como podemos organizar os dados

_________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

Tipos de Operaccedilotildees realizadas sobre os dados

O tipo de operaccedilotildees efetuadas depende dos objetivos do processamento e igualmente dostipos de dados nele envolvidos pois o computador pode processar dados numeacutericos ou natildeo

numeacutericos Assim temos como operaccedilotildees possiacuteveis num processamento

bull Operaccedilotildees aritmeacuteticas - satildeo efetuadas apenas sobre dados numeacutericos e satildeo

basicamente constituiacutedas por somas subtraccedilotildees multiplicaccedilotildees divisotildees e outras similares

bull Operaccedilotildees loacutegicas - satildeo efetuadas sobre dados numeacutericos ou natildeo numeacutericos Estas

operaccedilotildees satildeo tambeacutem por vezes designadas por operaccedilotildees de comparaccedilatildeo

bull Operaccedilotildees de movimentaccedilatildeo interna - satildeo efetuadas sobre qualquer tipo de dados e

consistem na coacutepia e mudanccedila de localizaccedilatildeo interna dos dados na memoacuteria do computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2465

24

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Operaccedilatildeo de InputOutput - satildeo as operaccedilotildees que envolvem os oacutergatildeos de entrada e

saiacuteda permitindo a comunicaccedilatildeo entre o operador e a maacutequina

Funccedilotildees do processamento de dados

Considera-se como processamento de dados o conjunto de todas as operaccedilotildees efetuadas desde

a entrada dos dados ateacute agrave saiacuteda da informaccedilatildeo Todas estas operaccedilotildees de vaacuterios tipos satildeo

normalmente associadas a seis funccedilotildees do processamento de dados input ordenaccedilatildeo

processamento armazenamento output e controle

bull Input - fase de seleccedilatildeo e aquisiccedilatildeo dos dados pelo computador

bull Ordenaccedilatildeo - esta eacute uma funccedilatildeo auxiliar O seu objetivo eacute dispor os dados de uma forma

organizada (ordenada) de modo a facilitar o seu tratamento Se os dados se mantiverem

ordenados segundo um determinado criteacuterio preacute-definido a sua pesquisa eacute mais faacutecil o que faz

aumentar a velocidade do processamento

bull Processamento - considera-se processamento ao conjunto de todas as operaccedilotildees

efetuadas internamente pelo computador na manipulaccedilatildeo dos dados

bull Armazenamento - esta eacute uma funccedilatildeo muito importante que permite posteriormente

analisar as etapas e os resultados do processamento

bull Output - eacute a obtenccedilatildeo de resultados sob a forma de informaccedilatildeo significativa para as

pessoas a quem se destina

bull Controle - a sua finalidade eacute detectar corrigir e eliminar possiacuteveis erros ou afastamentosem relaccedilatildeo aos objetivos inicialmente traccedilados

Utilidade de um banco de dados

Um banco de dados permite pocircr dados agrave disposiccedilatildeo de usuaacuterios para uma consulta uma

introduccedilatildeo ou uma atualizaccedilatildeo assegurando-se dos direitos atribuiacutedos a estes uacuteltimos Isso eacute

ainda mais uacutetil quando os dados informaacuteticos satildeo cada vez mais numerosos

Um banco de dados pode ser local quer dizer utilizaacutevel em uma maacutequina por um usuaacuterio

ou repartida quer dizer que as informaccedilotildees satildeo armazenadas em maacutequinas distantes eacessiacuteveis por rede A vantagem essencial da utilizaccedilatildeo dos bancos de dados eacute a possibilidade

de poder ser acessada por vaacuterios usuaacuterios simultaneamente

A gestatildeo dos bancos de dados

A fim de poder controlar os dados bem como os usuaacuterios a necessidade de um sistema de

gestatildeo fez-se sentir rapidamente A gestatildeo do banco de dados faz-se graccedilas a um sistema

chamado SGBD (sistema de gestatildeo de bancos de dados) ou em inglecircs DBMS (Database

managment system) O SGBD eacute um conjunto de serviccedilos (aplicaccedilotildees software) que permitem

gerenciar os bancos de dados quer dizer

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2565

25

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Permitir o acesso aos dados de maneira simples

Autorizar um acesso agraves informaccedilotildees a muacuteltiplos usuaacuterios

Manipular os dados presentes no banco de dados (inserccedilatildeo supressatildeo modificaccedilatildeo)

O SGBD pode decompor-se em trecircs subsistemas

O sistema de gestatildeo de arquivos permite o armazenamento das informaccedilotildees num suporte

fiacutesico

O SGBD interno gerencia a emissatildeo das informaccedilotildees

O SGBD externo representa a interface com o usuaacuterio

Bancos de dados satildeo conjuntos de dados com uma estrutura regular que organizam

informaccedilatildeo Um banco de dados normalmente agrupa informaccedilotildees utilizadas para um mesmo fim

O modelo de dados mais adotado hoje em dia eacute o modelo relacional onde as estruturas

tecircm a forma de tabelas compostas por linhas e colunas

Resumindo um banco de dados eacute uma coleccedilatildeo de dados relacionados Entende-se por

dado toda a informaccedilatildeo que pode ser armazenada e que apresenta algum significado impliacutecito

dentro do contexto ao qual ele se aplica Por exemplo num sistema bancaacuterio uma pessoa eacuteidentificada pelo seu cpf(cliente) Em um sistema escolar a pessoa eacute identificada pelo seu nuacutemero

de matriacutecula(aluno) Aleacutem disso os dados que seratildeo armazenados em cada situaccedilatildeo podem

diferir consideravelmente

Atividades

1) Onde utilizar um banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2665

26

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2) Como funciona um sistema gerenciador de banco de dados

3) Como funciona o modelo relacional

Modelo Relacional

O modelo relacional eacute uma teoria matemaacutetica desenvolvida por Edgar Frank Codd para

descrever como as bases de dados devem funcionar Embora esta teoria seja a base para o

software de bases de dados relacionais muito poucos sistemas de gestatildeo de bases de dados

seguem o modelo de forma restrita e todos tecircm funcionalidades que violam a teoria desta forma

variando a complexidade e o poder A discussatildeo se esses bancos de dados merecem ser

chamados de relacional ficou esgotada com tempo com a evoluccedilatildeo dos bancos existentes

De acordo com a arquitetura ANSI SPARC em trecircs niacuteveis os Bancos de dados

relacionais consistem de trecircs componentes

bull uma coleccedilatildeo de estruturas de dados formalmente chamadas de relaccedilotildees ou

informalmente tabelas compondo o niacutevel conceitual

bull uma coleccedilatildeo dos operadores a aacutelgebra e o caacutelculo relacionais que constituem a base da

linguagem SQL

bull uma coleccedilatildeo de restriccedilotildees da integridade definindo o conjunto consistente de estados de

base de dados e de alteraccedilotildees de estados As restriccedilotildees de integridade podem ser de quatro

tipos

bull domiacutenio (ou tipo de dados) bull atributo

bull restriccedilotildees de base de dados

De acordo com o Princiacutepio de Informaccedilatildeo toda informaccedilatildeo tem de ser representada como dados

qualquer tipo de atributo representa relaccedilotildees entre conjuntos de dados

Nos bancos de dados relacionais os relacionamentos entre as tabelas natildeo satildeo codificados

explicitamente na sua definiccedilatildeo Em vez disso se fazem implicitamente pela presenccedila de

atributos chave As bases de dados relacionais permitem aos utilizadores (incluindo

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2765

27

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

programadores) escreverem consultas (queries) reorganizando e utilizando os dados de forma

flexiacutevel e natildeo necessariamente antecipada pelos projetistas originais

Esta flexibilidade eacute especialmente importante em bases de dados que podem ser utilizadas

durante deacutecadas tornando as bases de dados relacionais muito populares no meio comercial

Um dos pontos fortes do modelo relacional de banco de dados eacute a possibilidade de

definiccedilatildeo de um conjunto de restriccedilotildees de integridade Estas definem os conjuntos de estados e

mudanccedilas de estado consistentes do banco de dados determinando os valores que podem e os

que natildeo podem ser armazenados

Aplicaccedilotildees de bancos de dados

Bancos de dados satildeo usados em muitas aplicaccedilotildees enquanto atravessando virtualmente a

gama inteira de software de computador Bancos de dados eacute o meacutetodo preferido de

armazenamento para aplicaccedilotildees multiusuaacuterias grandes onde a coordenaccedilatildeo entre muitosusuaacuterios eacute necessaacuteria Ateacute mesmo usuaacuterios individuais os acham convenientes entretanto e

muitos programas de correio eletrocircnico e os organizadores pessoais estatildeo baseados em

tecnologia de banco de dados standard

Aplicativo de Banco de Dados

Um aplicativo de banco de dados eacute um tipo de software exclusivo para gerenciar um banco

de dados Aplicativos de banco de dados abrangem uma vasta variedade de necessidades e

objetivos de pequenas ferramentas como uma agenda ateacute complexos sistemas empresariaispara desempenhar tarefas como a contabilidade

O termo Aplicativo de Banco de dados usualmente se refere a softwares que oferecem

uma interface para o banco de dados Exemplos de aplicativos de banco de dados satildeo Microsoft

Visual FoxPro Microsoft Access dBASE FileMaker (em certa medida) HyperCard MySQL

PostgreSQL Microsoft SQL Server e Oracle

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2865

28

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Capiacutetulo 3 - HARDWARE E SOFTWARE

O QUE Eacute O HARDWARE

No acircmbito da informaacutetica eacute dada a designaccedilatildeo de hardware a todos os componentes

fiacutesicos que fazem parte de um sistema informaacutetico incluiacutedo toda a parte fiacutesica de um computador

(nomeadamente os processadores motherbord disco riacutegido placas de som placas de viacutedeo

memoacuterias etc) e todos os perifeacutericos (tais como teclados mouse monitores impressoras

scanners modems entre outros)

Peccedilas de um computador

Se vocecirc usa um computador desktop jaacute deve saber que natildeo existe uma parte uacutenica

chamada computador Um computador eacute na verdade um sistema de muitas partes funcionando

em conjunto As partes fiacutesicas que vocecirc pode ver e tocar satildeo denominadas

coletivamente hardware (O software por outro lado se refere agraves instruccedilotildees ou programas que

dizem ao hardware o que fazer)

A ilustraccedilatildeo a seguir mostra os dispositivos de hardware mais comuns em um sistema de

computador desktop Seu sistema pode ter uma aparecircncia um pouco diferente mas

provavelmente possui a maioria destas peccedilas Um computador laptop possui peccedilas semelhantes

mas as combina em um uacutenico pacote do tamanho de um caderno

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2965

29

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Sistema de computador desktop

Unidade de sistema

A unidade de sistema (Gabinete) eacute o nuacutecleo de um sistema de computador Normalmente

eacute uma caixa retangular colocada sobre a mesa ou embaixo dela Dentro dessa caixa estatildeo os

componentes eletrocircnicos que processam as informaccedilotildees O mais importante desses

componentes eacute a CPU (unidade de processamento central) ou microprocessador que atua como

o ceacuterebro do computador Outro componente eacute a memoacuteria RAM que armazena

temporariamente informaccedilotildees utilizadas pela CPU enquanto o computador estaacute ligado As

informaccedilotildees gravadas na RAM satildeo apagadas quando o computador eacute desligado

Quase todas as outras partes do computador se conectam agrave unidade de sistema por meio

de cabos Os cabos satildeo conectados aportas (aberturas) especiacuteficas geralmente na parte traseira

da unidade de sistema O hardware que natildeo faz parte da unidade de sistema eacute

chamado dispositivo perifeacuterico ou simplesmente dispositivo

Unidade de sistema

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3065

30

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Armazenamento

O computador possui uma ou mais unidades de disco ou seja dispositivos que armazenam

informaccedilotildees em um disco de plaacutestico ou de metal O disco preserva as informaccedilotildees mesmo

quando o computador estaacute desligado

Unidade de disco riacutegido

A unidade de disco riacutegido do computador armazena informaccedilotildees em um disco riacutegido que eacute um

prato riacutegido ou pilha de pratos com uma superfiacutecie magneacutetica Como os discos riacutegidos podem

reter uma grande quantidade de informaccedilotildees normalmente eles funcionam como principal meio

de armazenamento do computador guardando praticamente todos os programas e arquivos Em

geral a unidade de disco riacutegido fica localizada dentro da unidade de sistema

Unidade de disco riacutegidoUnidades de CD e DVD

Hoje em dia quase todos os computadores vecircm equipados com uma unidade de CD ou DVD

geralmente localizada na frente da unidade de sistema As unidades de CD usam lasers para ler

(recuperar) dados de um CD Muitas delas tambeacutem podem gravar dados em CDs Se vocecirc tiver

uma unidade de disco gravaacutevel poderaacute armazenar coacutepias de seus arquivos em CDs vazios A

unidade de CD tambeacutem serve para tocar CDs de muacutesica no computador

CD

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3165

31

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

As unidades de DVD fazem o mesmo que as unidades de CD e tambeacutem lecircem DVDs Se vocecirc

tiver uma unidade de DVD poderaacute ver filmes no computador Muitas unidades de DVD podem

gravar dados em DVDs vazios

Dica

Se vocecirc tiver uma unidade de CD ou DVD gravaacutevel faccedila backup (copie) periodicamente de seus

arquivos importantes em CDs ou DVDs Dessa forma caso venha a ocorrer alguma falha no disco

riacutegido vocecirc natildeo perderaacute os dados

Unidade de disquete

As unidades de disquete armazenam informaccedilotildees em discos tambeacutem chamados discos

flexiacuteveis ou disquetes Comparado a CDs e DVDs os disquetes podem armazenar apenas uma

pequena quantidade de dados Eles tambeacutem recuperam informaccedilotildees de forma mais lenta e satildeo

mais vulneraacuteveis a danos Por esses motivos as unidades de disquete satildeo cada vez menosusadas embora ainda sejam incluiacutedas em alguns computadores

Disquete

Por que estes discos satildeo chamados de disquetes Apesar de a parte externa ser composta de

plaacutestico riacutegido isso eacute apenas a capa O interior do disco eacute feito de um material de vinil fino e

flexiacutevel

Mouse

Mouse eacute um pequeno dispositivo usado para apontar e selecionar itens na tela do computador

Embora existam mouses de vaacuterias formas o modelo mais comum se assemelha a um rato (como

diz o nome em inglecircs) Ele eacute pequeno e alongado sendo conectado agrave unidade de sistema por um

cabo comprido que faz lembrar uma cauda Alguns mouses mais novos satildeo sem fio

Mouse

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3265

32

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O mouse geralmente possui dois bototildees um botatildeo principal (normalmente o da esquerda) e um

botatildeo secundaacuterio Muitos mouses tambeacutem tecircm uma roda entre os dois bototildees que permite

percorrer as telas de informaccedilotildees

Ponteiros do mouse

Agrave medida que vocecirc move o mouse com a matildeo um ponteiro na tela se move na mesma direccedilatildeo

(A aparecircncia do ponteiro pode mudar dependendo da sua posiccedilatildeo na tela) Quando quiser

selecionar um item aponte para ele e clique no botatildeo principal ou seja pressione-o e solte-o

Apontar e clicar com o mouse eacute a principal maneira de interagir com o computador Para mais

informaccedilotildees consulte Usando o mouse

Teclado

A finalidade principal do teclado eacute digitar texto no computador Ele possui teclas para letras e

nuacutemeros exatamente como em uma maacutequina de escrever A diferenccedila estaacute nas teclas especiais

As teclas de funccedilatildeo localizadas na linha superior executam funccedilotildees diferentes dependendo

de onde satildeo usadas

O teclado numeacuterico localizado agrave direita na maioria dos teclados permite inserir nuacutemeros

rapidamente

As teclas de navegaccedilatildeo como as teclas de seta permitem mover sua posiccedilatildeo dentro de

documentos ou paacuteginas da Web

Teclado

Vocecirc tambeacutem pode usar o teclado para executar muitas das mesmas tarefas que executa com

um mouse Para mais informaccedilotildees consulte Usando o teclado

Monitor

O monitor exibe informaccedilotildees em forma visual usando texto e elementos graacuteficos A parte do

monitor que exibe as informaccedilotildees eacute chamada tela Como a tela de uma televisatildeo a tela de um

computador pode mostrar imagens paradas ou em movimento

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3365

33

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Existem dois tipos baacutesicos de monitores CRT (tubo de raios catoacutedicos) e LCD (viacutedeo de cristal

liacutequido) Ambos produzem imagens niacutetidas mas os monitores LCD levam vantagem por serem

mais finos e mais leves

Monitor LCD (agrave esquerda) monitor CRT (agrave direita)

Impressora

Uma impressora transfere dados de um computador para o papel Vocecirc natildeo precisa de

impressora para usar o computador mas se tiver uma poderaacute imprimir emails cartotildees convites

anuacutencios e outros materiais Muitas pessoas tambeacutem preferem imprimir suas fotos em casa

Os dois principais tipos de impressora satildeo a jato de tinta e a laser As impressoras a jato de tinta

satildeo as mais populares para uso domeacutestico Elas podem imprimir em preto e branco ou em cores

e produzem fotos de alta qualidade quando usadas com papel especial As impressoras a laser

satildeo mais raacutepidas e mais adequadas para uso intenso

Impressora a jato de tinta (agrave esquerda) impressora a laser (agrave direita)

Alto-falantes

Os alto-falantes satildeo usados para tocar som Eles podem vir embutidos na unidade de sistema ou

ser conectados com cabos Satildeo eles que permitem ouvir muacutesica e efeitos de som no computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3465

34

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Alto-falantes do computador

Modem

Para conectar o computador agrave Internet vocecirc precisa de um modem um dispositivo que envia e

recebe informaccedilotildees do computador por linha telefocircnica ou cabo de alta velocidade Agraves vezes os

modems vecircm embutidos na unidade de sistema mas os de alta velocidade normalmente satildeo

componentes separados

Modem a cabo

O QUE Eacute O SOFTWARE

O Software eacute uma aplicaccedilatildeo ou programa do computador escrita numa determinadalinguagem interpretaacutevel por uma determinada maacutequina (o processador de um computador ou

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3565

35

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

outro equipamento) e que permite executar determinadas tarefas para as quais o software foi

projetado Estes programas satildeo compostos por uma sequecircncia de instruccedilotildees (os comandos) e de

declaraccedilotildees de dados as quais satildeo armazenaacuteveis num meio digital

Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por um

computador com o objetivo de executar tarefas especiacuteficas Tambeacutem pode ser definido como

os programas que comandam o funcionamento de um computador

Em um computador o software eacute classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer

instruccedilotildees para o hardware O hardware eacute toda a parte fiacutesica que constitui o computador por

exemplo a CPU a memoacuteria e os dispositivos de entrada e saiacuteda O software eacute constituiacutedo por

todos os programas que existem para um referido sistema quer sejam produzidos pelo proacuteprio

utente ou pelo fabricante do computador

O termo inglecircs software foi usado pela primeira vez em 1958 em um artigo escrito pelo cientistaamericano John Wilder Tukey Foi tambeacutem ele o responsaacutevel por introduzir o termo bit para

designar diacutegito binaacuterio

Os softwares podem ser classificados como

SOFTWARE DE SISTEMA

Geralmente dividido em SISTEMAS OPERACIONAIS e PROGRAMAS UTILITAacuteRIOS Para

comeccedilar os Sist Operacionais satildeo de grande importacircncia pois eles nos datildeo a opccedilatildeo de dizer ao

computador o que ele deve fazer Dois exemplos bastante conhecidos do nosso puacuteblico satildeoo Mac o Windows e o Linux Os Programas utilitaacuterios geralmente satildeo softwares de menor porte

com funccedilotildees mais especificas tipo Verificaccedilatildeo de Disco Coacutepias de Seguranccedila entre outros

SOFTWARE APLICATIVO

Neste tipo de software se enquadram todos aqueles programas que satildeo utilizados na execuccedilatildeo

de tarefas especiacuteficas Posso citar vaacuterios exemplos mas os mais comuns satildeo os processadores

de texto como o Word que servem para trabalhar com os mais diversos tipos de textos emitir

etiquetas e fazer formulaacuterios as planilhas eletrocircnicas como o Excel satildeo poderosas ferramentas

de caacutelculos que facilitam tanto aquele trabalho aacuterduo de matemaacutetica fazer graacuteficos com real

representaccedilatildeo dos dados eacute uma coisa muito boa pra quem precisa e por uacuteltimo o que muitos

usam mas natildeo sabem o nome ao certo que satildeo os Browsers ou Navegadores softwares usados

para navegar na Web dentre eles os mais conhecidos atualmente satildeo Windows Internet

Explorer Firefox Google Chrome Opera e Safaacuteri

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3665

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3765

37

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

hoje eles satildeo bastante usados em situaccedilotildees de treinamentos de pessoas para enfrentar casos no

seu dia-a-dia

SOFTWARE DE JOGOS

Geralmente satildeo softwares relacionados a entretenimento para proporcionar lazer e diversatildeo

Dispotildeem de muitos recursos interativos e existem de todos os tipos desde estrateacutegias ateacute

simulaccedilotildees reais de muitas coisas como corridas (Need for Speed) ateacute mesmo de vida como o

Second Life

SOFTWARES ABERTOS

Satildeo aqueles que permitem que o usuaacuterio produza com liberdade e criatividade se classificam

nessa categoria aqueles softwares de apresentaccedilotildees bancos de dados e vaacuterios outros

Para fixar

Descreva uma definiccedilatildeo para os tipos de softwares

Software de Sistema_____________________________________________________________

Software Aplicativo ______________________________________________________________

Software de Linguagem __________________________________________________________

Software abertos _______________________________________________________________

Capiacutetulo 4 - Conceitos Baacutesicos de Banco de Dados

Segundo Korth um banco de dados ldquoeacute uma coleccedilatildeo de dados inter -relacionados

representando informaccedilotildees sobre um domiacutenio especiacuteficordquo ou seja sempre que for possiacutevel

agrupar informaccedilotildees que se relacionam e tratam de um mesmo assunto posso dizer que tenho

um banco de dados

Podemos exemplificar situaccedilotildees claacutessicas como uma lista telefocircnica um cataacutelogo de CDs ou um

sistema de controle de RH de uma empresa

Jaacute um sistema de gerenciamento de banco de dados (SGBD) eacute um software que possui

recursos capazes de manipular as informaccedilotildees do banco de dados e interagir com o usuaacuterio

Exemplos de SGBDs satildeo Oracle SQL Server DB2 PostgreSQL MySQL o proacuteprio Access ouParadox entre outros

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3865

38

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Por uacuteltimo temos que conceituar um sistema de banco de dados como o conjunto de quatro

componentes baacutesicos dados hardware software e usuaacuterios Date conceituou que ldquosistema de

bancos de dados pode ser considerado como uma sala de arquivos eletrocircnicardquo A Figura 1 ilustra

os componentes de um sistema de banco de dados

Componentes de um sistema de banco de dados

Os objetivos de um sistema de banco de dados satildeo o de isolar o usuaacuterio dos detalhes

internos do banco de dados (promover a abstraccedilatildeo de dados) e promover a independecircncia dos

dados em relaccedilatildeo agraves aplicaccedilotildees ou seja tornar independente da aplicaccedilatildeo a estrateacutegia de

acesso e a forma de armazenamento

Abstraccedilatildeo de dados

O sistema de banco de dados deve garantir uma visatildeo totalmente abstrata do banco de

dados para o usuaacuterio ou seja para o usuaacuterio do banco de dados pouco importa qual unidade de

armazenamento estaacute sendo usada para guardar seus dados contanto que os mesmos estejam

disponiacuteveis no momento necessaacuterio

Esta abstraccedilatildeo se daacute em trecircs niacuteveis (Figura 2) Niacutevel de visatildeo do usuaacuterio as partes do banco de dados que o usuaacuterio tem acesso de

acordo com a necessidade individual de cada usuaacuterio ou grupo de usuaacuterios

Niacutevel conceitual define quais os dados que estatildeo armazenados e qual o relacionamento

entre eles

Niacutevel fiacutesico eacute o niacutevel mais baixo de abstraccedilatildeo em que define efetivamente de que maneira

os dados estatildeo armazenados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3965

39

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 2 Niacuteveis de abstraccedilatildeo

Projeto de banco de dados

Todo bom sistema de banco de dados deve apresentar um projeto que visa a organizaccedilatildeo das

informaccedilotildees e utilizaccedilatildeo de teacutecnicas para que o futuro sistema obtenha boa performance e

tambeacutem facilite infinitamente as manutenccedilotildees que venham a acontecer

O projeto de banco de dados se daacute em duas fases

Modelagem conceitual Projeto loacutegico

Estas duas etapas se referem a um sistema de banco de dados ainda natildeo implementado ou seja

que ainda natildeo exista um novo projeto Para os casos em que o banco de dados jaacute exista mas eacute

um sistema legado por exemplo ou um sistema muito antigo sem documentaccedilatildeo o processo de

projeto de banco de dados se daraacute atraveacutes da utilizaccedilatildeo de uma teacutecnica chamada de Engenharia

Reversa que seraacute visto em outra oportunidade

Modelo conceitual

Eacute a descriccedilatildeo do BD de maneira independente ao SGBD ou seja define quais os dados

que apareceratildeo no BD mas sem se importar com a implementaccedilatildeo que se daraacute ao BD Desta

forma haacute uma abstraccedilatildeo em niacutevel de SGBD

Uma das teacutecnicas mais utilizadas dentre os profissionais da aacuterea eacute a abordagem entidade-

relacionamento (ER) onde o modelo eacute representado graficamente atraveacutes do diagrama entidade-

relacionamento (DER) (Figura 3)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 14: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1465

14

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O uso das redes distribuiacutedas se difundiu por todo o mundo permitindo o acesso a outros

sistemas de computaccedilatildeo independentemente de cidade paiacutes e ateacute mesmo fabricante Os

softwares de rede passaram a estar intimamente relacionados com o sistema operacional de cada

maacutequina e surgem os sistemas operacionais de rede

QUINTA GERACcedilAtildeO (1991ATUALMENTE)

Houve grandes avanccedilos em termos de hardware software e telecomunicaccedilotildees como

consequecircncia da evoluccedilatildeo das aplicaccedilotildees que necessitavam cada vez mais de capacidade de

processamento e armazenamento de dados Sistemas especialistas sistemas multimiacutedia bancos

de dados distribuiacutedos inteligecircncia artificial e redes neurais satildeo apenas alguns exemplos da

necessidade cada vez maior de informaccedilatildeo e de capacidade de processamento O conceito de

processamento distribuiacutedo eacute explorado nos sistemas operacionais de forma que suas funccedilotildees

estejam espalhadas por vaacuterios processadores atraveacutes de redes de computadores A deacutecada de 90 foi definitiva para a consolidaccedilatildeo dos sistemas operacionais baseados em

interfaces graacuteficas

Atualmente temos as plataformas multicore (vaacuterios nuacutecleos) disponiacuteveis em computadores

pessoais e ateacute notebooks possibilitando cada vez mais a paralelizaccedilatildeo de aplicaccedilotildees e elevando

em muito o tempo de execuccedilatildeo dos programas Os fanaacuteticos pelos jogos de computador que o

digam

Os sistemas operacionais - satildeo parte fundamental dos computadores satildeo responsaacuteveis pororganizar os processos (programas) que estatildeo sendo executados pelo processador criando uma

fila de processos que garante que todos receberatildeo sua parcela de processamento

Para Fixar

Escreva um breve resumo sobre o processo evolutivo dos Softwares

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________ __________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1565

15

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

PRINCIacutePAIS SISTEMAS OPERACIONAIS

Principais SO que deram iniacutecio a era Windows MCs Linux e Unix

1987 ndash Andrew Tanenbaum um professor de computaccedilatildeo holandecircs desenvolve um sistema

operacional didaacutetico simplificado mas respeitando a API do UNIX que foi batizado como Minix

1987 ndash IBM e Microsoft apresentam a primeira versatildeo do OS2 um sistema multitarefa destinado

a substituir o MS-DOS e o Windows Mais tarde as duas empresas rompem a parceria a IBM

continua no OS2 e a Microsoft investe no ambiente Windows

1991 ndash Linus Torvalds um estudante de graduaccedilatildeo Finlandecircs inicia o desenvolvimento do Linux

lanccedilando na rede Usenet o nuacutecleo 001 logo abraccedilado por centenas de programadores ao redor

do mundo

1993 ndash a Microsoft lanccedila o Windows NT o primeiro sistema 32 bits da empresa

Capiacutetulo 2 ndash Banco de Dados

Banco de dados eacute um arquivo especial que armazena dados arrumados sob forma de

tabelas ou matrizes (em linhas e colunas) Quando um conjunto de informaccedilotildees possui muitasvariaacuteveis interligadas entre si eacute aconselhaacutevel que sejam armazenadas e trabalhadas em um

banco de dados Os bancos de dados fornecem uma seacuterie de funcionalidades que natildeo satildeo

encontradas em arquivos comuns ldquoBancos de dados satildeo coleccedilotildees de informaccedilotildees que se

relacionam de forma que crie um sentidordquo Satildeo de vital importacircncia para empresas e haacute duas

deacutecadas se tornaram a principal peccedila dos sistemas de informaccedilatildeo ldquoFonte Wikipeacutediardquo

Entatildeo um banco de dados eacute uma entidade na qual eacute possiacutevel armazenar dados de maneira

estruturada e com a menor redundacircncia possiacutevel Estes dados devem poder ser utilizadas porprogramas por usuaacuterios diferentes Assim a noccedilatildeo baacutesica de dados eacute acoplada geralmente a

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1665

16

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

uma rede a fim de poder pocircr conjuntamente estas informaccedilotildees daiacute o nome banco Fala-se

geralmente de sistema de informaccedilatildeo para designar toda a estrutura que reuacutene os meios

organizados para poder compartilhar dados

DADOS amp INFORMACcedilOtildeES

Muitos consideram dados e informaccedilotildees como palavras sinocircnimas mas na verdade natildeo satildeo

Para entender o que eacute um banco de dados eacute muito importante saber a diferenccedila entre essas duas

palavras

Dados satildeo fatos brutos em sua forma primaacuteria E muitas vezes os dados podem natildeo fazer

sentido sozinhos

Informaccedilotildees consistem no agrupamento de dados de forma organizada para fazer sentido

gerar conhecimento

Por exemplo o nuacutemero 2001 isoladamente faz algum sentido Natildeo Isso eacute um dado E se eu

dissesse ldquoAno do atentado terrorista agraves torres gecircmeas 2001Prime Agora faz sentido Isso eacute

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1765

17

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

uma informaccedilatildeo Um banco de dados eacute uma estrutura de dados organizada que permite a

extraccedilatildeo de informaccedilotildees

Metadados ndash Eacute todo dado relativo a outro dado eacute chamado de metadados No exemplo anterior

do ano 2001 o dado ldquoAno do atentado terrorista agraves torres gecircmeasrdquo eacute um metadado pois ele eacute um

dado sobre o dado ldquo2001rdquo Outro exemplo mais comum em banco de dados o campo telefone da

tabela cliente tem entre outros os seguinte metadados nome (telefone) tipo (texto) tamanho (30

caracteres) obrigatoriedade (natildeo) etc

Um banco de dados eacute formado por dado e metadados Sem os metadados natildeo seria

possiacutevel organizar e extrair informaccedilotildees de um banco de dados

Para Fixar

Dados - Em informaacutetica designa-se por dados os elementos de partida que servem de base

para o tratamento e sobre os quais o computador efetua as operaccedilotildees necessaacuterias agrave tarefa emquestatildeo

Os dados satildeo uma representaccedilatildeo dos fatos conceitos ou instruccedilotildees de uma maneira

normalizada que se adapte agrave comunicaccedilatildeo interpretaccedilatildeo e processamento pelo ser humano ou

atraveacutes de maacutequinas automaacuteticas

Os dados satildeo representados por siacutembolos como por exemplo as letras do alfabeto a b c

etc mas natildeo satildeo em si a informaccedilatildeo desejada

ExemploO I O C O M B - satildeo dados mas natildeo eacute informaccedilatildeo perceptiacutevel ao homem

A informaccedilatildeo natildeo eacute mais do que dados organizados e ordenados de forma uacutetil Isto eacute informaccedilatildeo

eacute o conhecimento produzido como resultado do processamento de dados

Se processarmos os dados que tiacutenhamos anteriormente entatildeo obtemos a informaccedilatildeo

O I O C O M B - Dados

- Processamento

C O M B O I O ndash Informaccedilatildeo

Para fixar

Escreva o significado de

Dados___________________________________________________________________

_________________________________________________________________________

Informaccedilatildeo_______________________________________________________________

_________________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1865

18

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Metadados_______________________________________________________________

_________________________________________________________________________

Banco de

dados___________________________________________________________________

_________________________________________________________________________

A histoacuteria dos bancos de dados

Hoje os bancos de dados satildeo essenciais para muitas empresas e estatildeo no coraccedilatildeo de

muitos sistemas computacionais Ter acesso raacutepido agraves informaccedilotildees eacute muito importante para a

correta tomada de decisotildees em um negoacutecio Se vocecirc pretende trabalhar com desenvolvimento de

softwares com certeza precisaraacute trabalhar com bancos de dados em algum momento Conhecer

a histoacuteria dos bancos de dados e como eles evoluiacuteram eacute muito importante para entender como os

bancos de dados mais comuns satildeo organizados Entatildeo como aconteceu a evoluccedilatildeo dos bancos

de dados

Antigamente as empresas armazenavam dados em fichas de papel que eram organizadas

em arquivos fiacutesicos atraveacutes de pastas Extrair informaccedilotildees e manter esses arquivos organizados

era uma tarefa muito custosa Aleacutem disso o acesso agrave informaccedilatildeo dependia da localizaccedilatildeo

geograacutefica dos arquivos Enfim esses arquivos fiacutesicos evoluiacuteram para arquivos digitais No iniacutecio

cada entidade (clientes funcionaacuterios produtos etc) era um arquivo de dados que eram

acompanhados de um ldquosoftware simplesrdquo para manipular os dados do arquivo esses softwares

permitiam realizar operaccedilotildees de cadastro alteraccedilatildeo exclusatildeo e consulta nos arquivos digitais De

fato melhorou bastante principalmente a tarefa de consulta de informaccedilotildees poreacutem os arquivos

digitais eram ainda uma versatildeo melhorada dos arquivos fiacutesicos

Mas as entidades precisavam relacionar-se por exemplo um produto eacute fornecido por

um fornecedor e com os arquivos digitais relacionaacute-las natildeo era uma tarefa muito trivial os

ldquosoftwares simplesrdquo para manipular os arquivos digitais comeccedilaram a ficar ldquocomplexosrdquo para

permitir os relacionamentos entre entidades Entatildeo na deacutecada de 60 a empresa IBM investiu

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1965

19

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

fortemente em pesquisas para solucionar estes problemas dos bancos de dados digitais

primitivos Vaacuterios modelos de bancos de dados surgiram nesta eacutepoca dentre eles os modelos

hieraacuterquicos e rede

Em junho de 1970 o pesquisador Edgar Frank ldquoTedrdquo Codd da IBM mudou a histoacuteria dos

bancos de dados apresentando o modelo relacional no artigo intitulado ldquoA Relational Model of

Data for Large Shared Data Banksrdquo (Um modelo relacional de dados para grandes bancos de

dados compartilhados) onde o autor apresentou uma forma de usuaacuterios sem conhecimento

teacutecnico armazenarem e extraiacuterem grandes quantidades de informaccedilotildees de um banco de dados

Esse artigo foi o grande impulso para a evoluccedilatildeo dos bancos de dados a partir do artigo de ldquoTedrdquo

Codd que os cientistas aprofundaram a ideia de criar o modelo de banco de dados relacional

BANCO DE DADOS RELACIONAL

Apesar de ter sido o marco dos bancos de dados relacionais o artigo de Codd natildeo foimuito explorado no iniacutecio Soacute no final da deacutecada de 70 que foi desenvolvido um sistema baseado

nas ideias do cientista o ldquoSistema Rrdquo Junto com esse sistema foi criado a linguagem de consulta

estruturada (SQL ndash Structured Query Language) que se tornou a linguagem padratildeo para bancos

de dados relacionais Embora tenha contribuiacutedo para a evoluccedilatildeo dos bancos de dados

relacionais o ldquoSystem Rrdquo natildeo foi muito bem sucedido comercialmente mas os sistemas de banco

de dados seguintes foram baseados nele

Nos anos 80 surgiram outros bancos de dados a Oracle apresentou o Oracle 2 e a IBMo SQLDS (que se tornou DB2) ambos sistemas comerciais de bancos de dados Na sequencia

vieram SQL Server MySQL DBase III Paradox etchellip

BANCOS DE DADOS HOJE

Atualmente existem vaacuterios modelos de bancos de dados tais como orientado a objetos

orientado a documentos etc Mas o mais comum ainda eacute o banco de dados relacional A decisatildeo

entre qual modelo de banco de dados utilizarem baseia-se no tipo de dados que vocecirc pretende

armazenar Por exemplo se vocecirc for armazenar uma grande quantidade de dados em um modelo

pequeno (imagine um banco de dados para o twitter) eacute mais indicado utilizar um banco de dados

orientado a documentos a um banco de dados relacional Muitas questotildees envolvem essa

decisatildeo mas natildeo eacute uma questatildeo de superioridade entre uma ou outra tecnologia todas tecircm proacutes

e contras e satildeo mais indicadas ou natildeo para cada problema

Para fixar

Faccedila um breve resumo sobre o surgimos dos bancos de dados

______________________________________________________________________________

______________________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2065

20

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

Dados amp Informaccedilatildeo

A informaccedilatildeo eacute encarada atualmente como um dos recursos mais importantes de uma

organizaccedilatildeo contribuindo decisivamente para a sua maior ou menor competitividade De fato

com o aumento da concorrecircncia tornou-se vital melhorar as capacidades de decisatildeo a todos osniacuteveis

Hoje mais que nunca a tomada de decisatildeo nas organizaccedilotildees eacute um processo complexo

dada a qualidade de informaccedilatildeo em jogo a sua complexidade e a frequecircncia com que se altera

No entanto para que possa ser utilizada com um apoio eficaz agrave tomada de decisatildeo a informaccedilatildeo

soacute tecircm valor se verificarem simultaneamente algumas condiccedilotildees

ATUALIDADE ndash O valor da informaccedilatildeo dependeraacute em grande parte da sua atualidade

Dado o dinamismo verificado em todos os setores da sociedade em geral e do ambiente

empresarial em particular o periacuteodo de validade da informaccedilatildeo eacute cada vez mais curto Torna-se

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2165

21

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

necessaacuterio dispor de fontes de informaccedilatildeo que acompanhem continuamente essas modificaccedilotildees

Soacute com base em informaccedilatildeo atualizada se podem tomar decisotildees acertadas

CORRECcedilAtildeO ndash Natildeo basta que a informaccedilatildeo seja atual eacute tambeacutem necessaacuterio que na

medida do possiacutevel seja rigorosa Soacute com informaccedilatildeo correta se pode decidir com confianccedila

RELEVAcircNCIA ndash Dado o grande de volume de informaccedilatildeo envolvida o processo de tomada

de decisatildeo ao contraacuterio de ser facilitado pode ser dificultado pelo excesso de informaccedilatildeo A

informaccedilatildeo deve ser devidamente filtrada de tal forma que apenas aquela com relevacircncia para

cada situaccedilatildeo seja considerada

DISPONIBILIDADE ndash Ainda que a informaccedilatildeo verifique os trecircs requisitos anteriores a sua

utilidades poderaacute ser posta em causa se natildeo puder ser disponibilizada de forma imediata no

momento em que eacute solicitada As decisotildees muito ponderadas com o longo periacuteodo de gestaccedilatildeo

satildeo cada vez mais situaccedilotildees do passado Hoje dadas as caracteriacutesticas do meio envolvente oprocesso de tomada de decisatildeo tem que ser quase instantacircneo Para isso a informaccedilatildeo tem que

ser disponibilizada rapidamente caso contraacuterio deixa de ser uacutetil

LEGIBILIDADE - Esta condiccedilatildeo apesar de apresentada em uacuteltimo lugar natildeo eacute por isso

menos importante A informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada

De fato de nada vale que a informaccedilatildeo seja atual precisa relevante e disponibilizada em

tempo oportuno se natildeo puder ser entendida A forma como eacute disponibilizada tem tambeacutem grande

importacircncia informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada A forma como eacutedisponibilizada tem tambeacutem grande importacircncia

Quanto aos requisitos de atualidade e correccedilatildeo da informaccedilatildeo para que esta possa ser

correta e atual os dados de onde eacute derivada tecircm forccedilosamente que ser precisos e atualizados

Quanto aos requisitos de relevacircncia disponibilidade e legibilidade da informaccedilatildeo estes tecircm mais

a ver com os meios utilizados para o processamento dos dados

Como eacute que a informaccedilatildeo eacute organizada

A organizaccedilatildeo da informaccedilatildeo eacute efetuada de acordo com criteacuterios distintos como

Hierarquia dos seus componentes

O tipo de assunto a que se refere

Forma de armazenamento

Quanto agrave HIERARQUIA DOS COMPONENTES DA INFORMACcedilAtildeO esta eacute organizada em

Caracteres Campos Registros Ficheiros Caracteres - podem ser numeacutericos alfabeacuteticos ou

sinais de pontuaccedilatildeo Campos - satildeo conjuntos de caracteres que identificam um componente de

um registo Registos - satildeo agrupamentos de campos descritivos de uma realidade Ficheiros - satildeo

conjuntos de registos cuja informaccedilatildeo eacute estruturalmente analoacutegica

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2265

22

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Quanto AO TIPO DE ASSUNTO a que se refere agrave informaccedilatildeo

Esta pode ser como que etiquetada de modo a tornar faacutecil a sua procura e a evitar perdas

de tempo

Quando a informaccedilatildeo estaacute armazenada em ficheiros estes indicam o seu tipo atraveacutes de

uma extensatildeo ao nome do ficheiro

Algumas das extensotildees mais comuns satildeo

- COM ficheiro de comandos - BACK backup ou coacutepias de seguranccedila- EXE executaacuteveis - SYS ficheiros de sistema

- BAT processamento batch - XLS folha de caacutelculo provenientes do Excel

- TXT texto no formato ASCII - PPT apresentaccedilotildees provenientes do PowerPoint

- PAS programas em Linguagem Pascal - MBD base de dados provenientes do Access

- C programas em Linguagem C - DOC documentos provenientes de um processador de

texto

Quanto Agrave FORMA DE ARMAZENAMENTO da informaccedilatildeoRelativamente ao armazenamento por exemplo no disco riacutegido do computador a

informaccedilatildeo eacute organizada em diretorias cujo nome revela o tipo de ficheiros que aiacute se encontram

podendo cada diretorias conter diversas subdiretorias

Organizaccedilatildeo dos dados num Computador

Os dados que fornecemos a um computador para processar podem ser de trecircs tipos

quantitativos classificativos referenciais

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2365

23

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Dados quantitativos - satildeo os que exprimem quantidades e por isso normalmente servem

de base para caacutelculos aritmeacuteticos Exemplo a ficha escolar as notas do periacuteodo as faltas o total

das faltas

bull Dados classificativos - satildeo os que descrevem ou especificam os elementos envolvidos e

quantificados Normalmente servem de complemento aos dados quantitativos identificando

pessoas objetos situaccedilotildees etc Natildeo servem portanto para elementos de caacutelculo Exemplo a

ficha escolar o nome do aluno o nome da disciplina o nome do professor

bull Dados referenciais - satildeo dados que permitem controlar e referenciar os elementos

tratados Exemplo a ficha escolar o ano letivo o nuacutemero do aluno a turma

Para fixar

Escreva de forma resumida como podemos organizar os dados

_________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

Tipos de Operaccedilotildees realizadas sobre os dados

O tipo de operaccedilotildees efetuadas depende dos objetivos do processamento e igualmente dostipos de dados nele envolvidos pois o computador pode processar dados numeacutericos ou natildeo

numeacutericos Assim temos como operaccedilotildees possiacuteveis num processamento

bull Operaccedilotildees aritmeacuteticas - satildeo efetuadas apenas sobre dados numeacutericos e satildeo

basicamente constituiacutedas por somas subtraccedilotildees multiplicaccedilotildees divisotildees e outras similares

bull Operaccedilotildees loacutegicas - satildeo efetuadas sobre dados numeacutericos ou natildeo numeacutericos Estas

operaccedilotildees satildeo tambeacutem por vezes designadas por operaccedilotildees de comparaccedilatildeo

bull Operaccedilotildees de movimentaccedilatildeo interna - satildeo efetuadas sobre qualquer tipo de dados e

consistem na coacutepia e mudanccedila de localizaccedilatildeo interna dos dados na memoacuteria do computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2465

24

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Operaccedilatildeo de InputOutput - satildeo as operaccedilotildees que envolvem os oacutergatildeos de entrada e

saiacuteda permitindo a comunicaccedilatildeo entre o operador e a maacutequina

Funccedilotildees do processamento de dados

Considera-se como processamento de dados o conjunto de todas as operaccedilotildees efetuadas desde

a entrada dos dados ateacute agrave saiacuteda da informaccedilatildeo Todas estas operaccedilotildees de vaacuterios tipos satildeo

normalmente associadas a seis funccedilotildees do processamento de dados input ordenaccedilatildeo

processamento armazenamento output e controle

bull Input - fase de seleccedilatildeo e aquisiccedilatildeo dos dados pelo computador

bull Ordenaccedilatildeo - esta eacute uma funccedilatildeo auxiliar O seu objetivo eacute dispor os dados de uma forma

organizada (ordenada) de modo a facilitar o seu tratamento Se os dados se mantiverem

ordenados segundo um determinado criteacuterio preacute-definido a sua pesquisa eacute mais faacutecil o que faz

aumentar a velocidade do processamento

bull Processamento - considera-se processamento ao conjunto de todas as operaccedilotildees

efetuadas internamente pelo computador na manipulaccedilatildeo dos dados

bull Armazenamento - esta eacute uma funccedilatildeo muito importante que permite posteriormente

analisar as etapas e os resultados do processamento

bull Output - eacute a obtenccedilatildeo de resultados sob a forma de informaccedilatildeo significativa para as

pessoas a quem se destina

bull Controle - a sua finalidade eacute detectar corrigir e eliminar possiacuteveis erros ou afastamentosem relaccedilatildeo aos objetivos inicialmente traccedilados

Utilidade de um banco de dados

Um banco de dados permite pocircr dados agrave disposiccedilatildeo de usuaacuterios para uma consulta uma

introduccedilatildeo ou uma atualizaccedilatildeo assegurando-se dos direitos atribuiacutedos a estes uacuteltimos Isso eacute

ainda mais uacutetil quando os dados informaacuteticos satildeo cada vez mais numerosos

Um banco de dados pode ser local quer dizer utilizaacutevel em uma maacutequina por um usuaacuterio

ou repartida quer dizer que as informaccedilotildees satildeo armazenadas em maacutequinas distantes eacessiacuteveis por rede A vantagem essencial da utilizaccedilatildeo dos bancos de dados eacute a possibilidade

de poder ser acessada por vaacuterios usuaacuterios simultaneamente

A gestatildeo dos bancos de dados

A fim de poder controlar os dados bem como os usuaacuterios a necessidade de um sistema de

gestatildeo fez-se sentir rapidamente A gestatildeo do banco de dados faz-se graccedilas a um sistema

chamado SGBD (sistema de gestatildeo de bancos de dados) ou em inglecircs DBMS (Database

managment system) O SGBD eacute um conjunto de serviccedilos (aplicaccedilotildees software) que permitem

gerenciar os bancos de dados quer dizer

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2565

25

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Permitir o acesso aos dados de maneira simples

Autorizar um acesso agraves informaccedilotildees a muacuteltiplos usuaacuterios

Manipular os dados presentes no banco de dados (inserccedilatildeo supressatildeo modificaccedilatildeo)

O SGBD pode decompor-se em trecircs subsistemas

O sistema de gestatildeo de arquivos permite o armazenamento das informaccedilotildees num suporte

fiacutesico

O SGBD interno gerencia a emissatildeo das informaccedilotildees

O SGBD externo representa a interface com o usuaacuterio

Bancos de dados satildeo conjuntos de dados com uma estrutura regular que organizam

informaccedilatildeo Um banco de dados normalmente agrupa informaccedilotildees utilizadas para um mesmo fim

O modelo de dados mais adotado hoje em dia eacute o modelo relacional onde as estruturas

tecircm a forma de tabelas compostas por linhas e colunas

Resumindo um banco de dados eacute uma coleccedilatildeo de dados relacionados Entende-se por

dado toda a informaccedilatildeo que pode ser armazenada e que apresenta algum significado impliacutecito

dentro do contexto ao qual ele se aplica Por exemplo num sistema bancaacuterio uma pessoa eacuteidentificada pelo seu cpf(cliente) Em um sistema escolar a pessoa eacute identificada pelo seu nuacutemero

de matriacutecula(aluno) Aleacutem disso os dados que seratildeo armazenados em cada situaccedilatildeo podem

diferir consideravelmente

Atividades

1) Onde utilizar um banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2665

26

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2) Como funciona um sistema gerenciador de banco de dados

3) Como funciona o modelo relacional

Modelo Relacional

O modelo relacional eacute uma teoria matemaacutetica desenvolvida por Edgar Frank Codd para

descrever como as bases de dados devem funcionar Embora esta teoria seja a base para o

software de bases de dados relacionais muito poucos sistemas de gestatildeo de bases de dados

seguem o modelo de forma restrita e todos tecircm funcionalidades que violam a teoria desta forma

variando a complexidade e o poder A discussatildeo se esses bancos de dados merecem ser

chamados de relacional ficou esgotada com tempo com a evoluccedilatildeo dos bancos existentes

De acordo com a arquitetura ANSI SPARC em trecircs niacuteveis os Bancos de dados

relacionais consistem de trecircs componentes

bull uma coleccedilatildeo de estruturas de dados formalmente chamadas de relaccedilotildees ou

informalmente tabelas compondo o niacutevel conceitual

bull uma coleccedilatildeo dos operadores a aacutelgebra e o caacutelculo relacionais que constituem a base da

linguagem SQL

bull uma coleccedilatildeo de restriccedilotildees da integridade definindo o conjunto consistente de estados de

base de dados e de alteraccedilotildees de estados As restriccedilotildees de integridade podem ser de quatro

tipos

bull domiacutenio (ou tipo de dados) bull atributo

bull restriccedilotildees de base de dados

De acordo com o Princiacutepio de Informaccedilatildeo toda informaccedilatildeo tem de ser representada como dados

qualquer tipo de atributo representa relaccedilotildees entre conjuntos de dados

Nos bancos de dados relacionais os relacionamentos entre as tabelas natildeo satildeo codificados

explicitamente na sua definiccedilatildeo Em vez disso se fazem implicitamente pela presenccedila de

atributos chave As bases de dados relacionais permitem aos utilizadores (incluindo

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2765

27

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

programadores) escreverem consultas (queries) reorganizando e utilizando os dados de forma

flexiacutevel e natildeo necessariamente antecipada pelos projetistas originais

Esta flexibilidade eacute especialmente importante em bases de dados que podem ser utilizadas

durante deacutecadas tornando as bases de dados relacionais muito populares no meio comercial

Um dos pontos fortes do modelo relacional de banco de dados eacute a possibilidade de

definiccedilatildeo de um conjunto de restriccedilotildees de integridade Estas definem os conjuntos de estados e

mudanccedilas de estado consistentes do banco de dados determinando os valores que podem e os

que natildeo podem ser armazenados

Aplicaccedilotildees de bancos de dados

Bancos de dados satildeo usados em muitas aplicaccedilotildees enquanto atravessando virtualmente a

gama inteira de software de computador Bancos de dados eacute o meacutetodo preferido de

armazenamento para aplicaccedilotildees multiusuaacuterias grandes onde a coordenaccedilatildeo entre muitosusuaacuterios eacute necessaacuteria Ateacute mesmo usuaacuterios individuais os acham convenientes entretanto e

muitos programas de correio eletrocircnico e os organizadores pessoais estatildeo baseados em

tecnologia de banco de dados standard

Aplicativo de Banco de Dados

Um aplicativo de banco de dados eacute um tipo de software exclusivo para gerenciar um banco

de dados Aplicativos de banco de dados abrangem uma vasta variedade de necessidades e

objetivos de pequenas ferramentas como uma agenda ateacute complexos sistemas empresariaispara desempenhar tarefas como a contabilidade

O termo Aplicativo de Banco de dados usualmente se refere a softwares que oferecem

uma interface para o banco de dados Exemplos de aplicativos de banco de dados satildeo Microsoft

Visual FoxPro Microsoft Access dBASE FileMaker (em certa medida) HyperCard MySQL

PostgreSQL Microsoft SQL Server e Oracle

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2865

28

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Capiacutetulo 3 - HARDWARE E SOFTWARE

O QUE Eacute O HARDWARE

No acircmbito da informaacutetica eacute dada a designaccedilatildeo de hardware a todos os componentes

fiacutesicos que fazem parte de um sistema informaacutetico incluiacutedo toda a parte fiacutesica de um computador

(nomeadamente os processadores motherbord disco riacutegido placas de som placas de viacutedeo

memoacuterias etc) e todos os perifeacutericos (tais como teclados mouse monitores impressoras

scanners modems entre outros)

Peccedilas de um computador

Se vocecirc usa um computador desktop jaacute deve saber que natildeo existe uma parte uacutenica

chamada computador Um computador eacute na verdade um sistema de muitas partes funcionando

em conjunto As partes fiacutesicas que vocecirc pode ver e tocar satildeo denominadas

coletivamente hardware (O software por outro lado se refere agraves instruccedilotildees ou programas que

dizem ao hardware o que fazer)

A ilustraccedilatildeo a seguir mostra os dispositivos de hardware mais comuns em um sistema de

computador desktop Seu sistema pode ter uma aparecircncia um pouco diferente mas

provavelmente possui a maioria destas peccedilas Um computador laptop possui peccedilas semelhantes

mas as combina em um uacutenico pacote do tamanho de um caderno

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2965

29

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Sistema de computador desktop

Unidade de sistema

A unidade de sistema (Gabinete) eacute o nuacutecleo de um sistema de computador Normalmente

eacute uma caixa retangular colocada sobre a mesa ou embaixo dela Dentro dessa caixa estatildeo os

componentes eletrocircnicos que processam as informaccedilotildees O mais importante desses

componentes eacute a CPU (unidade de processamento central) ou microprocessador que atua como

o ceacuterebro do computador Outro componente eacute a memoacuteria RAM que armazena

temporariamente informaccedilotildees utilizadas pela CPU enquanto o computador estaacute ligado As

informaccedilotildees gravadas na RAM satildeo apagadas quando o computador eacute desligado

Quase todas as outras partes do computador se conectam agrave unidade de sistema por meio

de cabos Os cabos satildeo conectados aportas (aberturas) especiacuteficas geralmente na parte traseira

da unidade de sistema O hardware que natildeo faz parte da unidade de sistema eacute

chamado dispositivo perifeacuterico ou simplesmente dispositivo

Unidade de sistema

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3065

30

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Armazenamento

O computador possui uma ou mais unidades de disco ou seja dispositivos que armazenam

informaccedilotildees em um disco de plaacutestico ou de metal O disco preserva as informaccedilotildees mesmo

quando o computador estaacute desligado

Unidade de disco riacutegido

A unidade de disco riacutegido do computador armazena informaccedilotildees em um disco riacutegido que eacute um

prato riacutegido ou pilha de pratos com uma superfiacutecie magneacutetica Como os discos riacutegidos podem

reter uma grande quantidade de informaccedilotildees normalmente eles funcionam como principal meio

de armazenamento do computador guardando praticamente todos os programas e arquivos Em

geral a unidade de disco riacutegido fica localizada dentro da unidade de sistema

Unidade de disco riacutegidoUnidades de CD e DVD

Hoje em dia quase todos os computadores vecircm equipados com uma unidade de CD ou DVD

geralmente localizada na frente da unidade de sistema As unidades de CD usam lasers para ler

(recuperar) dados de um CD Muitas delas tambeacutem podem gravar dados em CDs Se vocecirc tiver

uma unidade de disco gravaacutevel poderaacute armazenar coacutepias de seus arquivos em CDs vazios A

unidade de CD tambeacutem serve para tocar CDs de muacutesica no computador

CD

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3165

31

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

As unidades de DVD fazem o mesmo que as unidades de CD e tambeacutem lecircem DVDs Se vocecirc

tiver uma unidade de DVD poderaacute ver filmes no computador Muitas unidades de DVD podem

gravar dados em DVDs vazios

Dica

Se vocecirc tiver uma unidade de CD ou DVD gravaacutevel faccedila backup (copie) periodicamente de seus

arquivos importantes em CDs ou DVDs Dessa forma caso venha a ocorrer alguma falha no disco

riacutegido vocecirc natildeo perderaacute os dados

Unidade de disquete

As unidades de disquete armazenam informaccedilotildees em discos tambeacutem chamados discos

flexiacuteveis ou disquetes Comparado a CDs e DVDs os disquetes podem armazenar apenas uma

pequena quantidade de dados Eles tambeacutem recuperam informaccedilotildees de forma mais lenta e satildeo

mais vulneraacuteveis a danos Por esses motivos as unidades de disquete satildeo cada vez menosusadas embora ainda sejam incluiacutedas em alguns computadores

Disquete

Por que estes discos satildeo chamados de disquetes Apesar de a parte externa ser composta de

plaacutestico riacutegido isso eacute apenas a capa O interior do disco eacute feito de um material de vinil fino e

flexiacutevel

Mouse

Mouse eacute um pequeno dispositivo usado para apontar e selecionar itens na tela do computador

Embora existam mouses de vaacuterias formas o modelo mais comum se assemelha a um rato (como

diz o nome em inglecircs) Ele eacute pequeno e alongado sendo conectado agrave unidade de sistema por um

cabo comprido que faz lembrar uma cauda Alguns mouses mais novos satildeo sem fio

Mouse

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3265

32

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O mouse geralmente possui dois bototildees um botatildeo principal (normalmente o da esquerda) e um

botatildeo secundaacuterio Muitos mouses tambeacutem tecircm uma roda entre os dois bototildees que permite

percorrer as telas de informaccedilotildees

Ponteiros do mouse

Agrave medida que vocecirc move o mouse com a matildeo um ponteiro na tela se move na mesma direccedilatildeo

(A aparecircncia do ponteiro pode mudar dependendo da sua posiccedilatildeo na tela) Quando quiser

selecionar um item aponte para ele e clique no botatildeo principal ou seja pressione-o e solte-o

Apontar e clicar com o mouse eacute a principal maneira de interagir com o computador Para mais

informaccedilotildees consulte Usando o mouse

Teclado

A finalidade principal do teclado eacute digitar texto no computador Ele possui teclas para letras e

nuacutemeros exatamente como em uma maacutequina de escrever A diferenccedila estaacute nas teclas especiais

As teclas de funccedilatildeo localizadas na linha superior executam funccedilotildees diferentes dependendo

de onde satildeo usadas

O teclado numeacuterico localizado agrave direita na maioria dos teclados permite inserir nuacutemeros

rapidamente

As teclas de navegaccedilatildeo como as teclas de seta permitem mover sua posiccedilatildeo dentro de

documentos ou paacuteginas da Web

Teclado

Vocecirc tambeacutem pode usar o teclado para executar muitas das mesmas tarefas que executa com

um mouse Para mais informaccedilotildees consulte Usando o teclado

Monitor

O monitor exibe informaccedilotildees em forma visual usando texto e elementos graacuteficos A parte do

monitor que exibe as informaccedilotildees eacute chamada tela Como a tela de uma televisatildeo a tela de um

computador pode mostrar imagens paradas ou em movimento

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3365

33

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Existem dois tipos baacutesicos de monitores CRT (tubo de raios catoacutedicos) e LCD (viacutedeo de cristal

liacutequido) Ambos produzem imagens niacutetidas mas os monitores LCD levam vantagem por serem

mais finos e mais leves

Monitor LCD (agrave esquerda) monitor CRT (agrave direita)

Impressora

Uma impressora transfere dados de um computador para o papel Vocecirc natildeo precisa de

impressora para usar o computador mas se tiver uma poderaacute imprimir emails cartotildees convites

anuacutencios e outros materiais Muitas pessoas tambeacutem preferem imprimir suas fotos em casa

Os dois principais tipos de impressora satildeo a jato de tinta e a laser As impressoras a jato de tinta

satildeo as mais populares para uso domeacutestico Elas podem imprimir em preto e branco ou em cores

e produzem fotos de alta qualidade quando usadas com papel especial As impressoras a laser

satildeo mais raacutepidas e mais adequadas para uso intenso

Impressora a jato de tinta (agrave esquerda) impressora a laser (agrave direita)

Alto-falantes

Os alto-falantes satildeo usados para tocar som Eles podem vir embutidos na unidade de sistema ou

ser conectados com cabos Satildeo eles que permitem ouvir muacutesica e efeitos de som no computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3465

34

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Alto-falantes do computador

Modem

Para conectar o computador agrave Internet vocecirc precisa de um modem um dispositivo que envia e

recebe informaccedilotildees do computador por linha telefocircnica ou cabo de alta velocidade Agraves vezes os

modems vecircm embutidos na unidade de sistema mas os de alta velocidade normalmente satildeo

componentes separados

Modem a cabo

O QUE Eacute O SOFTWARE

O Software eacute uma aplicaccedilatildeo ou programa do computador escrita numa determinadalinguagem interpretaacutevel por uma determinada maacutequina (o processador de um computador ou

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3565

35

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

outro equipamento) e que permite executar determinadas tarefas para as quais o software foi

projetado Estes programas satildeo compostos por uma sequecircncia de instruccedilotildees (os comandos) e de

declaraccedilotildees de dados as quais satildeo armazenaacuteveis num meio digital

Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por um

computador com o objetivo de executar tarefas especiacuteficas Tambeacutem pode ser definido como

os programas que comandam o funcionamento de um computador

Em um computador o software eacute classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer

instruccedilotildees para o hardware O hardware eacute toda a parte fiacutesica que constitui o computador por

exemplo a CPU a memoacuteria e os dispositivos de entrada e saiacuteda O software eacute constituiacutedo por

todos os programas que existem para um referido sistema quer sejam produzidos pelo proacuteprio

utente ou pelo fabricante do computador

O termo inglecircs software foi usado pela primeira vez em 1958 em um artigo escrito pelo cientistaamericano John Wilder Tukey Foi tambeacutem ele o responsaacutevel por introduzir o termo bit para

designar diacutegito binaacuterio

Os softwares podem ser classificados como

SOFTWARE DE SISTEMA

Geralmente dividido em SISTEMAS OPERACIONAIS e PROGRAMAS UTILITAacuteRIOS Para

comeccedilar os Sist Operacionais satildeo de grande importacircncia pois eles nos datildeo a opccedilatildeo de dizer ao

computador o que ele deve fazer Dois exemplos bastante conhecidos do nosso puacuteblico satildeoo Mac o Windows e o Linux Os Programas utilitaacuterios geralmente satildeo softwares de menor porte

com funccedilotildees mais especificas tipo Verificaccedilatildeo de Disco Coacutepias de Seguranccedila entre outros

SOFTWARE APLICATIVO

Neste tipo de software se enquadram todos aqueles programas que satildeo utilizados na execuccedilatildeo

de tarefas especiacuteficas Posso citar vaacuterios exemplos mas os mais comuns satildeo os processadores

de texto como o Word que servem para trabalhar com os mais diversos tipos de textos emitir

etiquetas e fazer formulaacuterios as planilhas eletrocircnicas como o Excel satildeo poderosas ferramentas

de caacutelculos que facilitam tanto aquele trabalho aacuterduo de matemaacutetica fazer graacuteficos com real

representaccedilatildeo dos dados eacute uma coisa muito boa pra quem precisa e por uacuteltimo o que muitos

usam mas natildeo sabem o nome ao certo que satildeo os Browsers ou Navegadores softwares usados

para navegar na Web dentre eles os mais conhecidos atualmente satildeo Windows Internet

Explorer Firefox Google Chrome Opera e Safaacuteri

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3665

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3765

37

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

hoje eles satildeo bastante usados em situaccedilotildees de treinamentos de pessoas para enfrentar casos no

seu dia-a-dia

SOFTWARE DE JOGOS

Geralmente satildeo softwares relacionados a entretenimento para proporcionar lazer e diversatildeo

Dispotildeem de muitos recursos interativos e existem de todos os tipos desde estrateacutegias ateacute

simulaccedilotildees reais de muitas coisas como corridas (Need for Speed) ateacute mesmo de vida como o

Second Life

SOFTWARES ABERTOS

Satildeo aqueles que permitem que o usuaacuterio produza com liberdade e criatividade se classificam

nessa categoria aqueles softwares de apresentaccedilotildees bancos de dados e vaacuterios outros

Para fixar

Descreva uma definiccedilatildeo para os tipos de softwares

Software de Sistema_____________________________________________________________

Software Aplicativo ______________________________________________________________

Software de Linguagem __________________________________________________________

Software abertos _______________________________________________________________

Capiacutetulo 4 - Conceitos Baacutesicos de Banco de Dados

Segundo Korth um banco de dados ldquoeacute uma coleccedilatildeo de dados inter -relacionados

representando informaccedilotildees sobre um domiacutenio especiacuteficordquo ou seja sempre que for possiacutevel

agrupar informaccedilotildees que se relacionam e tratam de um mesmo assunto posso dizer que tenho

um banco de dados

Podemos exemplificar situaccedilotildees claacutessicas como uma lista telefocircnica um cataacutelogo de CDs ou um

sistema de controle de RH de uma empresa

Jaacute um sistema de gerenciamento de banco de dados (SGBD) eacute um software que possui

recursos capazes de manipular as informaccedilotildees do banco de dados e interagir com o usuaacuterio

Exemplos de SGBDs satildeo Oracle SQL Server DB2 PostgreSQL MySQL o proacuteprio Access ouParadox entre outros

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3865

38

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Por uacuteltimo temos que conceituar um sistema de banco de dados como o conjunto de quatro

componentes baacutesicos dados hardware software e usuaacuterios Date conceituou que ldquosistema de

bancos de dados pode ser considerado como uma sala de arquivos eletrocircnicardquo A Figura 1 ilustra

os componentes de um sistema de banco de dados

Componentes de um sistema de banco de dados

Os objetivos de um sistema de banco de dados satildeo o de isolar o usuaacuterio dos detalhes

internos do banco de dados (promover a abstraccedilatildeo de dados) e promover a independecircncia dos

dados em relaccedilatildeo agraves aplicaccedilotildees ou seja tornar independente da aplicaccedilatildeo a estrateacutegia de

acesso e a forma de armazenamento

Abstraccedilatildeo de dados

O sistema de banco de dados deve garantir uma visatildeo totalmente abstrata do banco de

dados para o usuaacuterio ou seja para o usuaacuterio do banco de dados pouco importa qual unidade de

armazenamento estaacute sendo usada para guardar seus dados contanto que os mesmos estejam

disponiacuteveis no momento necessaacuterio

Esta abstraccedilatildeo se daacute em trecircs niacuteveis (Figura 2) Niacutevel de visatildeo do usuaacuterio as partes do banco de dados que o usuaacuterio tem acesso de

acordo com a necessidade individual de cada usuaacuterio ou grupo de usuaacuterios

Niacutevel conceitual define quais os dados que estatildeo armazenados e qual o relacionamento

entre eles

Niacutevel fiacutesico eacute o niacutevel mais baixo de abstraccedilatildeo em que define efetivamente de que maneira

os dados estatildeo armazenados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3965

39

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 2 Niacuteveis de abstraccedilatildeo

Projeto de banco de dados

Todo bom sistema de banco de dados deve apresentar um projeto que visa a organizaccedilatildeo das

informaccedilotildees e utilizaccedilatildeo de teacutecnicas para que o futuro sistema obtenha boa performance e

tambeacutem facilite infinitamente as manutenccedilotildees que venham a acontecer

O projeto de banco de dados se daacute em duas fases

Modelagem conceitual Projeto loacutegico

Estas duas etapas se referem a um sistema de banco de dados ainda natildeo implementado ou seja

que ainda natildeo exista um novo projeto Para os casos em que o banco de dados jaacute exista mas eacute

um sistema legado por exemplo ou um sistema muito antigo sem documentaccedilatildeo o processo de

projeto de banco de dados se daraacute atraveacutes da utilizaccedilatildeo de uma teacutecnica chamada de Engenharia

Reversa que seraacute visto em outra oportunidade

Modelo conceitual

Eacute a descriccedilatildeo do BD de maneira independente ao SGBD ou seja define quais os dados

que apareceratildeo no BD mas sem se importar com a implementaccedilatildeo que se daraacute ao BD Desta

forma haacute uma abstraccedilatildeo em niacutevel de SGBD

Uma das teacutecnicas mais utilizadas dentre os profissionais da aacuterea eacute a abordagem entidade-

relacionamento (ER) onde o modelo eacute representado graficamente atraveacutes do diagrama entidade-

relacionamento (DER) (Figura 3)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 15: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1565

15

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

PRINCIacutePAIS SISTEMAS OPERACIONAIS

Principais SO que deram iniacutecio a era Windows MCs Linux e Unix

1987 ndash Andrew Tanenbaum um professor de computaccedilatildeo holandecircs desenvolve um sistema

operacional didaacutetico simplificado mas respeitando a API do UNIX que foi batizado como Minix

1987 ndash IBM e Microsoft apresentam a primeira versatildeo do OS2 um sistema multitarefa destinado

a substituir o MS-DOS e o Windows Mais tarde as duas empresas rompem a parceria a IBM

continua no OS2 e a Microsoft investe no ambiente Windows

1991 ndash Linus Torvalds um estudante de graduaccedilatildeo Finlandecircs inicia o desenvolvimento do Linux

lanccedilando na rede Usenet o nuacutecleo 001 logo abraccedilado por centenas de programadores ao redor

do mundo

1993 ndash a Microsoft lanccedila o Windows NT o primeiro sistema 32 bits da empresa

Capiacutetulo 2 ndash Banco de Dados

Banco de dados eacute um arquivo especial que armazena dados arrumados sob forma de

tabelas ou matrizes (em linhas e colunas) Quando um conjunto de informaccedilotildees possui muitasvariaacuteveis interligadas entre si eacute aconselhaacutevel que sejam armazenadas e trabalhadas em um

banco de dados Os bancos de dados fornecem uma seacuterie de funcionalidades que natildeo satildeo

encontradas em arquivos comuns ldquoBancos de dados satildeo coleccedilotildees de informaccedilotildees que se

relacionam de forma que crie um sentidordquo Satildeo de vital importacircncia para empresas e haacute duas

deacutecadas se tornaram a principal peccedila dos sistemas de informaccedilatildeo ldquoFonte Wikipeacutediardquo

Entatildeo um banco de dados eacute uma entidade na qual eacute possiacutevel armazenar dados de maneira

estruturada e com a menor redundacircncia possiacutevel Estes dados devem poder ser utilizadas porprogramas por usuaacuterios diferentes Assim a noccedilatildeo baacutesica de dados eacute acoplada geralmente a

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1665

16

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

uma rede a fim de poder pocircr conjuntamente estas informaccedilotildees daiacute o nome banco Fala-se

geralmente de sistema de informaccedilatildeo para designar toda a estrutura que reuacutene os meios

organizados para poder compartilhar dados

DADOS amp INFORMACcedilOtildeES

Muitos consideram dados e informaccedilotildees como palavras sinocircnimas mas na verdade natildeo satildeo

Para entender o que eacute um banco de dados eacute muito importante saber a diferenccedila entre essas duas

palavras

Dados satildeo fatos brutos em sua forma primaacuteria E muitas vezes os dados podem natildeo fazer

sentido sozinhos

Informaccedilotildees consistem no agrupamento de dados de forma organizada para fazer sentido

gerar conhecimento

Por exemplo o nuacutemero 2001 isoladamente faz algum sentido Natildeo Isso eacute um dado E se eu

dissesse ldquoAno do atentado terrorista agraves torres gecircmeas 2001Prime Agora faz sentido Isso eacute

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1765

17

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

uma informaccedilatildeo Um banco de dados eacute uma estrutura de dados organizada que permite a

extraccedilatildeo de informaccedilotildees

Metadados ndash Eacute todo dado relativo a outro dado eacute chamado de metadados No exemplo anterior

do ano 2001 o dado ldquoAno do atentado terrorista agraves torres gecircmeasrdquo eacute um metadado pois ele eacute um

dado sobre o dado ldquo2001rdquo Outro exemplo mais comum em banco de dados o campo telefone da

tabela cliente tem entre outros os seguinte metadados nome (telefone) tipo (texto) tamanho (30

caracteres) obrigatoriedade (natildeo) etc

Um banco de dados eacute formado por dado e metadados Sem os metadados natildeo seria

possiacutevel organizar e extrair informaccedilotildees de um banco de dados

Para Fixar

Dados - Em informaacutetica designa-se por dados os elementos de partida que servem de base

para o tratamento e sobre os quais o computador efetua as operaccedilotildees necessaacuterias agrave tarefa emquestatildeo

Os dados satildeo uma representaccedilatildeo dos fatos conceitos ou instruccedilotildees de uma maneira

normalizada que se adapte agrave comunicaccedilatildeo interpretaccedilatildeo e processamento pelo ser humano ou

atraveacutes de maacutequinas automaacuteticas

Os dados satildeo representados por siacutembolos como por exemplo as letras do alfabeto a b c

etc mas natildeo satildeo em si a informaccedilatildeo desejada

ExemploO I O C O M B - satildeo dados mas natildeo eacute informaccedilatildeo perceptiacutevel ao homem

A informaccedilatildeo natildeo eacute mais do que dados organizados e ordenados de forma uacutetil Isto eacute informaccedilatildeo

eacute o conhecimento produzido como resultado do processamento de dados

Se processarmos os dados que tiacutenhamos anteriormente entatildeo obtemos a informaccedilatildeo

O I O C O M B - Dados

- Processamento

C O M B O I O ndash Informaccedilatildeo

Para fixar

Escreva o significado de

Dados___________________________________________________________________

_________________________________________________________________________

Informaccedilatildeo_______________________________________________________________

_________________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1865

18

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Metadados_______________________________________________________________

_________________________________________________________________________

Banco de

dados___________________________________________________________________

_________________________________________________________________________

A histoacuteria dos bancos de dados

Hoje os bancos de dados satildeo essenciais para muitas empresas e estatildeo no coraccedilatildeo de

muitos sistemas computacionais Ter acesso raacutepido agraves informaccedilotildees eacute muito importante para a

correta tomada de decisotildees em um negoacutecio Se vocecirc pretende trabalhar com desenvolvimento de

softwares com certeza precisaraacute trabalhar com bancos de dados em algum momento Conhecer

a histoacuteria dos bancos de dados e como eles evoluiacuteram eacute muito importante para entender como os

bancos de dados mais comuns satildeo organizados Entatildeo como aconteceu a evoluccedilatildeo dos bancos

de dados

Antigamente as empresas armazenavam dados em fichas de papel que eram organizadas

em arquivos fiacutesicos atraveacutes de pastas Extrair informaccedilotildees e manter esses arquivos organizados

era uma tarefa muito custosa Aleacutem disso o acesso agrave informaccedilatildeo dependia da localizaccedilatildeo

geograacutefica dos arquivos Enfim esses arquivos fiacutesicos evoluiacuteram para arquivos digitais No iniacutecio

cada entidade (clientes funcionaacuterios produtos etc) era um arquivo de dados que eram

acompanhados de um ldquosoftware simplesrdquo para manipular os dados do arquivo esses softwares

permitiam realizar operaccedilotildees de cadastro alteraccedilatildeo exclusatildeo e consulta nos arquivos digitais De

fato melhorou bastante principalmente a tarefa de consulta de informaccedilotildees poreacutem os arquivos

digitais eram ainda uma versatildeo melhorada dos arquivos fiacutesicos

Mas as entidades precisavam relacionar-se por exemplo um produto eacute fornecido por

um fornecedor e com os arquivos digitais relacionaacute-las natildeo era uma tarefa muito trivial os

ldquosoftwares simplesrdquo para manipular os arquivos digitais comeccedilaram a ficar ldquocomplexosrdquo para

permitir os relacionamentos entre entidades Entatildeo na deacutecada de 60 a empresa IBM investiu

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1965

19

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

fortemente em pesquisas para solucionar estes problemas dos bancos de dados digitais

primitivos Vaacuterios modelos de bancos de dados surgiram nesta eacutepoca dentre eles os modelos

hieraacuterquicos e rede

Em junho de 1970 o pesquisador Edgar Frank ldquoTedrdquo Codd da IBM mudou a histoacuteria dos

bancos de dados apresentando o modelo relacional no artigo intitulado ldquoA Relational Model of

Data for Large Shared Data Banksrdquo (Um modelo relacional de dados para grandes bancos de

dados compartilhados) onde o autor apresentou uma forma de usuaacuterios sem conhecimento

teacutecnico armazenarem e extraiacuterem grandes quantidades de informaccedilotildees de um banco de dados

Esse artigo foi o grande impulso para a evoluccedilatildeo dos bancos de dados a partir do artigo de ldquoTedrdquo

Codd que os cientistas aprofundaram a ideia de criar o modelo de banco de dados relacional

BANCO DE DADOS RELACIONAL

Apesar de ter sido o marco dos bancos de dados relacionais o artigo de Codd natildeo foimuito explorado no iniacutecio Soacute no final da deacutecada de 70 que foi desenvolvido um sistema baseado

nas ideias do cientista o ldquoSistema Rrdquo Junto com esse sistema foi criado a linguagem de consulta

estruturada (SQL ndash Structured Query Language) que se tornou a linguagem padratildeo para bancos

de dados relacionais Embora tenha contribuiacutedo para a evoluccedilatildeo dos bancos de dados

relacionais o ldquoSystem Rrdquo natildeo foi muito bem sucedido comercialmente mas os sistemas de banco

de dados seguintes foram baseados nele

Nos anos 80 surgiram outros bancos de dados a Oracle apresentou o Oracle 2 e a IBMo SQLDS (que se tornou DB2) ambos sistemas comerciais de bancos de dados Na sequencia

vieram SQL Server MySQL DBase III Paradox etchellip

BANCOS DE DADOS HOJE

Atualmente existem vaacuterios modelos de bancos de dados tais como orientado a objetos

orientado a documentos etc Mas o mais comum ainda eacute o banco de dados relacional A decisatildeo

entre qual modelo de banco de dados utilizarem baseia-se no tipo de dados que vocecirc pretende

armazenar Por exemplo se vocecirc for armazenar uma grande quantidade de dados em um modelo

pequeno (imagine um banco de dados para o twitter) eacute mais indicado utilizar um banco de dados

orientado a documentos a um banco de dados relacional Muitas questotildees envolvem essa

decisatildeo mas natildeo eacute uma questatildeo de superioridade entre uma ou outra tecnologia todas tecircm proacutes

e contras e satildeo mais indicadas ou natildeo para cada problema

Para fixar

Faccedila um breve resumo sobre o surgimos dos bancos de dados

______________________________________________________________________________

______________________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2065

20

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

Dados amp Informaccedilatildeo

A informaccedilatildeo eacute encarada atualmente como um dos recursos mais importantes de uma

organizaccedilatildeo contribuindo decisivamente para a sua maior ou menor competitividade De fato

com o aumento da concorrecircncia tornou-se vital melhorar as capacidades de decisatildeo a todos osniacuteveis

Hoje mais que nunca a tomada de decisatildeo nas organizaccedilotildees eacute um processo complexo

dada a qualidade de informaccedilatildeo em jogo a sua complexidade e a frequecircncia com que se altera

No entanto para que possa ser utilizada com um apoio eficaz agrave tomada de decisatildeo a informaccedilatildeo

soacute tecircm valor se verificarem simultaneamente algumas condiccedilotildees

ATUALIDADE ndash O valor da informaccedilatildeo dependeraacute em grande parte da sua atualidade

Dado o dinamismo verificado em todos os setores da sociedade em geral e do ambiente

empresarial em particular o periacuteodo de validade da informaccedilatildeo eacute cada vez mais curto Torna-se

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2165

21

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

necessaacuterio dispor de fontes de informaccedilatildeo que acompanhem continuamente essas modificaccedilotildees

Soacute com base em informaccedilatildeo atualizada se podem tomar decisotildees acertadas

CORRECcedilAtildeO ndash Natildeo basta que a informaccedilatildeo seja atual eacute tambeacutem necessaacuterio que na

medida do possiacutevel seja rigorosa Soacute com informaccedilatildeo correta se pode decidir com confianccedila

RELEVAcircNCIA ndash Dado o grande de volume de informaccedilatildeo envolvida o processo de tomada

de decisatildeo ao contraacuterio de ser facilitado pode ser dificultado pelo excesso de informaccedilatildeo A

informaccedilatildeo deve ser devidamente filtrada de tal forma que apenas aquela com relevacircncia para

cada situaccedilatildeo seja considerada

DISPONIBILIDADE ndash Ainda que a informaccedilatildeo verifique os trecircs requisitos anteriores a sua

utilidades poderaacute ser posta em causa se natildeo puder ser disponibilizada de forma imediata no

momento em que eacute solicitada As decisotildees muito ponderadas com o longo periacuteodo de gestaccedilatildeo

satildeo cada vez mais situaccedilotildees do passado Hoje dadas as caracteriacutesticas do meio envolvente oprocesso de tomada de decisatildeo tem que ser quase instantacircneo Para isso a informaccedilatildeo tem que

ser disponibilizada rapidamente caso contraacuterio deixa de ser uacutetil

LEGIBILIDADE - Esta condiccedilatildeo apesar de apresentada em uacuteltimo lugar natildeo eacute por isso

menos importante A informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada

De fato de nada vale que a informaccedilatildeo seja atual precisa relevante e disponibilizada em

tempo oportuno se natildeo puder ser entendida A forma como eacute disponibilizada tem tambeacutem grande

importacircncia informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada A forma como eacutedisponibilizada tem tambeacutem grande importacircncia

Quanto aos requisitos de atualidade e correccedilatildeo da informaccedilatildeo para que esta possa ser

correta e atual os dados de onde eacute derivada tecircm forccedilosamente que ser precisos e atualizados

Quanto aos requisitos de relevacircncia disponibilidade e legibilidade da informaccedilatildeo estes tecircm mais

a ver com os meios utilizados para o processamento dos dados

Como eacute que a informaccedilatildeo eacute organizada

A organizaccedilatildeo da informaccedilatildeo eacute efetuada de acordo com criteacuterios distintos como

Hierarquia dos seus componentes

O tipo de assunto a que se refere

Forma de armazenamento

Quanto agrave HIERARQUIA DOS COMPONENTES DA INFORMACcedilAtildeO esta eacute organizada em

Caracteres Campos Registros Ficheiros Caracteres - podem ser numeacutericos alfabeacuteticos ou

sinais de pontuaccedilatildeo Campos - satildeo conjuntos de caracteres que identificam um componente de

um registo Registos - satildeo agrupamentos de campos descritivos de uma realidade Ficheiros - satildeo

conjuntos de registos cuja informaccedilatildeo eacute estruturalmente analoacutegica

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2265

22

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Quanto AO TIPO DE ASSUNTO a que se refere agrave informaccedilatildeo

Esta pode ser como que etiquetada de modo a tornar faacutecil a sua procura e a evitar perdas

de tempo

Quando a informaccedilatildeo estaacute armazenada em ficheiros estes indicam o seu tipo atraveacutes de

uma extensatildeo ao nome do ficheiro

Algumas das extensotildees mais comuns satildeo

- COM ficheiro de comandos - BACK backup ou coacutepias de seguranccedila- EXE executaacuteveis - SYS ficheiros de sistema

- BAT processamento batch - XLS folha de caacutelculo provenientes do Excel

- TXT texto no formato ASCII - PPT apresentaccedilotildees provenientes do PowerPoint

- PAS programas em Linguagem Pascal - MBD base de dados provenientes do Access

- C programas em Linguagem C - DOC documentos provenientes de um processador de

texto

Quanto Agrave FORMA DE ARMAZENAMENTO da informaccedilatildeoRelativamente ao armazenamento por exemplo no disco riacutegido do computador a

informaccedilatildeo eacute organizada em diretorias cujo nome revela o tipo de ficheiros que aiacute se encontram

podendo cada diretorias conter diversas subdiretorias

Organizaccedilatildeo dos dados num Computador

Os dados que fornecemos a um computador para processar podem ser de trecircs tipos

quantitativos classificativos referenciais

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2365

23

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Dados quantitativos - satildeo os que exprimem quantidades e por isso normalmente servem

de base para caacutelculos aritmeacuteticos Exemplo a ficha escolar as notas do periacuteodo as faltas o total

das faltas

bull Dados classificativos - satildeo os que descrevem ou especificam os elementos envolvidos e

quantificados Normalmente servem de complemento aos dados quantitativos identificando

pessoas objetos situaccedilotildees etc Natildeo servem portanto para elementos de caacutelculo Exemplo a

ficha escolar o nome do aluno o nome da disciplina o nome do professor

bull Dados referenciais - satildeo dados que permitem controlar e referenciar os elementos

tratados Exemplo a ficha escolar o ano letivo o nuacutemero do aluno a turma

Para fixar

Escreva de forma resumida como podemos organizar os dados

_________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

Tipos de Operaccedilotildees realizadas sobre os dados

O tipo de operaccedilotildees efetuadas depende dos objetivos do processamento e igualmente dostipos de dados nele envolvidos pois o computador pode processar dados numeacutericos ou natildeo

numeacutericos Assim temos como operaccedilotildees possiacuteveis num processamento

bull Operaccedilotildees aritmeacuteticas - satildeo efetuadas apenas sobre dados numeacutericos e satildeo

basicamente constituiacutedas por somas subtraccedilotildees multiplicaccedilotildees divisotildees e outras similares

bull Operaccedilotildees loacutegicas - satildeo efetuadas sobre dados numeacutericos ou natildeo numeacutericos Estas

operaccedilotildees satildeo tambeacutem por vezes designadas por operaccedilotildees de comparaccedilatildeo

bull Operaccedilotildees de movimentaccedilatildeo interna - satildeo efetuadas sobre qualquer tipo de dados e

consistem na coacutepia e mudanccedila de localizaccedilatildeo interna dos dados na memoacuteria do computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2465

24

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Operaccedilatildeo de InputOutput - satildeo as operaccedilotildees que envolvem os oacutergatildeos de entrada e

saiacuteda permitindo a comunicaccedilatildeo entre o operador e a maacutequina

Funccedilotildees do processamento de dados

Considera-se como processamento de dados o conjunto de todas as operaccedilotildees efetuadas desde

a entrada dos dados ateacute agrave saiacuteda da informaccedilatildeo Todas estas operaccedilotildees de vaacuterios tipos satildeo

normalmente associadas a seis funccedilotildees do processamento de dados input ordenaccedilatildeo

processamento armazenamento output e controle

bull Input - fase de seleccedilatildeo e aquisiccedilatildeo dos dados pelo computador

bull Ordenaccedilatildeo - esta eacute uma funccedilatildeo auxiliar O seu objetivo eacute dispor os dados de uma forma

organizada (ordenada) de modo a facilitar o seu tratamento Se os dados se mantiverem

ordenados segundo um determinado criteacuterio preacute-definido a sua pesquisa eacute mais faacutecil o que faz

aumentar a velocidade do processamento

bull Processamento - considera-se processamento ao conjunto de todas as operaccedilotildees

efetuadas internamente pelo computador na manipulaccedilatildeo dos dados

bull Armazenamento - esta eacute uma funccedilatildeo muito importante que permite posteriormente

analisar as etapas e os resultados do processamento

bull Output - eacute a obtenccedilatildeo de resultados sob a forma de informaccedilatildeo significativa para as

pessoas a quem se destina

bull Controle - a sua finalidade eacute detectar corrigir e eliminar possiacuteveis erros ou afastamentosem relaccedilatildeo aos objetivos inicialmente traccedilados

Utilidade de um banco de dados

Um banco de dados permite pocircr dados agrave disposiccedilatildeo de usuaacuterios para uma consulta uma

introduccedilatildeo ou uma atualizaccedilatildeo assegurando-se dos direitos atribuiacutedos a estes uacuteltimos Isso eacute

ainda mais uacutetil quando os dados informaacuteticos satildeo cada vez mais numerosos

Um banco de dados pode ser local quer dizer utilizaacutevel em uma maacutequina por um usuaacuterio

ou repartida quer dizer que as informaccedilotildees satildeo armazenadas em maacutequinas distantes eacessiacuteveis por rede A vantagem essencial da utilizaccedilatildeo dos bancos de dados eacute a possibilidade

de poder ser acessada por vaacuterios usuaacuterios simultaneamente

A gestatildeo dos bancos de dados

A fim de poder controlar os dados bem como os usuaacuterios a necessidade de um sistema de

gestatildeo fez-se sentir rapidamente A gestatildeo do banco de dados faz-se graccedilas a um sistema

chamado SGBD (sistema de gestatildeo de bancos de dados) ou em inglecircs DBMS (Database

managment system) O SGBD eacute um conjunto de serviccedilos (aplicaccedilotildees software) que permitem

gerenciar os bancos de dados quer dizer

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2565

25

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Permitir o acesso aos dados de maneira simples

Autorizar um acesso agraves informaccedilotildees a muacuteltiplos usuaacuterios

Manipular os dados presentes no banco de dados (inserccedilatildeo supressatildeo modificaccedilatildeo)

O SGBD pode decompor-se em trecircs subsistemas

O sistema de gestatildeo de arquivos permite o armazenamento das informaccedilotildees num suporte

fiacutesico

O SGBD interno gerencia a emissatildeo das informaccedilotildees

O SGBD externo representa a interface com o usuaacuterio

Bancos de dados satildeo conjuntos de dados com uma estrutura regular que organizam

informaccedilatildeo Um banco de dados normalmente agrupa informaccedilotildees utilizadas para um mesmo fim

O modelo de dados mais adotado hoje em dia eacute o modelo relacional onde as estruturas

tecircm a forma de tabelas compostas por linhas e colunas

Resumindo um banco de dados eacute uma coleccedilatildeo de dados relacionados Entende-se por

dado toda a informaccedilatildeo que pode ser armazenada e que apresenta algum significado impliacutecito

dentro do contexto ao qual ele se aplica Por exemplo num sistema bancaacuterio uma pessoa eacuteidentificada pelo seu cpf(cliente) Em um sistema escolar a pessoa eacute identificada pelo seu nuacutemero

de matriacutecula(aluno) Aleacutem disso os dados que seratildeo armazenados em cada situaccedilatildeo podem

diferir consideravelmente

Atividades

1) Onde utilizar um banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2665

26

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2) Como funciona um sistema gerenciador de banco de dados

3) Como funciona o modelo relacional

Modelo Relacional

O modelo relacional eacute uma teoria matemaacutetica desenvolvida por Edgar Frank Codd para

descrever como as bases de dados devem funcionar Embora esta teoria seja a base para o

software de bases de dados relacionais muito poucos sistemas de gestatildeo de bases de dados

seguem o modelo de forma restrita e todos tecircm funcionalidades que violam a teoria desta forma

variando a complexidade e o poder A discussatildeo se esses bancos de dados merecem ser

chamados de relacional ficou esgotada com tempo com a evoluccedilatildeo dos bancos existentes

De acordo com a arquitetura ANSI SPARC em trecircs niacuteveis os Bancos de dados

relacionais consistem de trecircs componentes

bull uma coleccedilatildeo de estruturas de dados formalmente chamadas de relaccedilotildees ou

informalmente tabelas compondo o niacutevel conceitual

bull uma coleccedilatildeo dos operadores a aacutelgebra e o caacutelculo relacionais que constituem a base da

linguagem SQL

bull uma coleccedilatildeo de restriccedilotildees da integridade definindo o conjunto consistente de estados de

base de dados e de alteraccedilotildees de estados As restriccedilotildees de integridade podem ser de quatro

tipos

bull domiacutenio (ou tipo de dados) bull atributo

bull restriccedilotildees de base de dados

De acordo com o Princiacutepio de Informaccedilatildeo toda informaccedilatildeo tem de ser representada como dados

qualquer tipo de atributo representa relaccedilotildees entre conjuntos de dados

Nos bancos de dados relacionais os relacionamentos entre as tabelas natildeo satildeo codificados

explicitamente na sua definiccedilatildeo Em vez disso se fazem implicitamente pela presenccedila de

atributos chave As bases de dados relacionais permitem aos utilizadores (incluindo

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2765

27

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

programadores) escreverem consultas (queries) reorganizando e utilizando os dados de forma

flexiacutevel e natildeo necessariamente antecipada pelos projetistas originais

Esta flexibilidade eacute especialmente importante em bases de dados que podem ser utilizadas

durante deacutecadas tornando as bases de dados relacionais muito populares no meio comercial

Um dos pontos fortes do modelo relacional de banco de dados eacute a possibilidade de

definiccedilatildeo de um conjunto de restriccedilotildees de integridade Estas definem os conjuntos de estados e

mudanccedilas de estado consistentes do banco de dados determinando os valores que podem e os

que natildeo podem ser armazenados

Aplicaccedilotildees de bancos de dados

Bancos de dados satildeo usados em muitas aplicaccedilotildees enquanto atravessando virtualmente a

gama inteira de software de computador Bancos de dados eacute o meacutetodo preferido de

armazenamento para aplicaccedilotildees multiusuaacuterias grandes onde a coordenaccedilatildeo entre muitosusuaacuterios eacute necessaacuteria Ateacute mesmo usuaacuterios individuais os acham convenientes entretanto e

muitos programas de correio eletrocircnico e os organizadores pessoais estatildeo baseados em

tecnologia de banco de dados standard

Aplicativo de Banco de Dados

Um aplicativo de banco de dados eacute um tipo de software exclusivo para gerenciar um banco

de dados Aplicativos de banco de dados abrangem uma vasta variedade de necessidades e

objetivos de pequenas ferramentas como uma agenda ateacute complexos sistemas empresariaispara desempenhar tarefas como a contabilidade

O termo Aplicativo de Banco de dados usualmente se refere a softwares que oferecem

uma interface para o banco de dados Exemplos de aplicativos de banco de dados satildeo Microsoft

Visual FoxPro Microsoft Access dBASE FileMaker (em certa medida) HyperCard MySQL

PostgreSQL Microsoft SQL Server e Oracle

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2865

28

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Capiacutetulo 3 - HARDWARE E SOFTWARE

O QUE Eacute O HARDWARE

No acircmbito da informaacutetica eacute dada a designaccedilatildeo de hardware a todos os componentes

fiacutesicos que fazem parte de um sistema informaacutetico incluiacutedo toda a parte fiacutesica de um computador

(nomeadamente os processadores motherbord disco riacutegido placas de som placas de viacutedeo

memoacuterias etc) e todos os perifeacutericos (tais como teclados mouse monitores impressoras

scanners modems entre outros)

Peccedilas de um computador

Se vocecirc usa um computador desktop jaacute deve saber que natildeo existe uma parte uacutenica

chamada computador Um computador eacute na verdade um sistema de muitas partes funcionando

em conjunto As partes fiacutesicas que vocecirc pode ver e tocar satildeo denominadas

coletivamente hardware (O software por outro lado se refere agraves instruccedilotildees ou programas que

dizem ao hardware o que fazer)

A ilustraccedilatildeo a seguir mostra os dispositivos de hardware mais comuns em um sistema de

computador desktop Seu sistema pode ter uma aparecircncia um pouco diferente mas

provavelmente possui a maioria destas peccedilas Um computador laptop possui peccedilas semelhantes

mas as combina em um uacutenico pacote do tamanho de um caderno

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2965

29

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Sistema de computador desktop

Unidade de sistema

A unidade de sistema (Gabinete) eacute o nuacutecleo de um sistema de computador Normalmente

eacute uma caixa retangular colocada sobre a mesa ou embaixo dela Dentro dessa caixa estatildeo os

componentes eletrocircnicos que processam as informaccedilotildees O mais importante desses

componentes eacute a CPU (unidade de processamento central) ou microprocessador que atua como

o ceacuterebro do computador Outro componente eacute a memoacuteria RAM que armazena

temporariamente informaccedilotildees utilizadas pela CPU enquanto o computador estaacute ligado As

informaccedilotildees gravadas na RAM satildeo apagadas quando o computador eacute desligado

Quase todas as outras partes do computador se conectam agrave unidade de sistema por meio

de cabos Os cabos satildeo conectados aportas (aberturas) especiacuteficas geralmente na parte traseira

da unidade de sistema O hardware que natildeo faz parte da unidade de sistema eacute

chamado dispositivo perifeacuterico ou simplesmente dispositivo

Unidade de sistema

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3065

30

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Armazenamento

O computador possui uma ou mais unidades de disco ou seja dispositivos que armazenam

informaccedilotildees em um disco de plaacutestico ou de metal O disco preserva as informaccedilotildees mesmo

quando o computador estaacute desligado

Unidade de disco riacutegido

A unidade de disco riacutegido do computador armazena informaccedilotildees em um disco riacutegido que eacute um

prato riacutegido ou pilha de pratos com uma superfiacutecie magneacutetica Como os discos riacutegidos podem

reter uma grande quantidade de informaccedilotildees normalmente eles funcionam como principal meio

de armazenamento do computador guardando praticamente todos os programas e arquivos Em

geral a unidade de disco riacutegido fica localizada dentro da unidade de sistema

Unidade de disco riacutegidoUnidades de CD e DVD

Hoje em dia quase todos os computadores vecircm equipados com uma unidade de CD ou DVD

geralmente localizada na frente da unidade de sistema As unidades de CD usam lasers para ler

(recuperar) dados de um CD Muitas delas tambeacutem podem gravar dados em CDs Se vocecirc tiver

uma unidade de disco gravaacutevel poderaacute armazenar coacutepias de seus arquivos em CDs vazios A

unidade de CD tambeacutem serve para tocar CDs de muacutesica no computador

CD

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3165

31

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

As unidades de DVD fazem o mesmo que as unidades de CD e tambeacutem lecircem DVDs Se vocecirc

tiver uma unidade de DVD poderaacute ver filmes no computador Muitas unidades de DVD podem

gravar dados em DVDs vazios

Dica

Se vocecirc tiver uma unidade de CD ou DVD gravaacutevel faccedila backup (copie) periodicamente de seus

arquivos importantes em CDs ou DVDs Dessa forma caso venha a ocorrer alguma falha no disco

riacutegido vocecirc natildeo perderaacute os dados

Unidade de disquete

As unidades de disquete armazenam informaccedilotildees em discos tambeacutem chamados discos

flexiacuteveis ou disquetes Comparado a CDs e DVDs os disquetes podem armazenar apenas uma

pequena quantidade de dados Eles tambeacutem recuperam informaccedilotildees de forma mais lenta e satildeo

mais vulneraacuteveis a danos Por esses motivos as unidades de disquete satildeo cada vez menosusadas embora ainda sejam incluiacutedas em alguns computadores

Disquete

Por que estes discos satildeo chamados de disquetes Apesar de a parte externa ser composta de

plaacutestico riacutegido isso eacute apenas a capa O interior do disco eacute feito de um material de vinil fino e

flexiacutevel

Mouse

Mouse eacute um pequeno dispositivo usado para apontar e selecionar itens na tela do computador

Embora existam mouses de vaacuterias formas o modelo mais comum se assemelha a um rato (como

diz o nome em inglecircs) Ele eacute pequeno e alongado sendo conectado agrave unidade de sistema por um

cabo comprido que faz lembrar uma cauda Alguns mouses mais novos satildeo sem fio

Mouse

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3265

32

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O mouse geralmente possui dois bototildees um botatildeo principal (normalmente o da esquerda) e um

botatildeo secundaacuterio Muitos mouses tambeacutem tecircm uma roda entre os dois bototildees que permite

percorrer as telas de informaccedilotildees

Ponteiros do mouse

Agrave medida que vocecirc move o mouse com a matildeo um ponteiro na tela se move na mesma direccedilatildeo

(A aparecircncia do ponteiro pode mudar dependendo da sua posiccedilatildeo na tela) Quando quiser

selecionar um item aponte para ele e clique no botatildeo principal ou seja pressione-o e solte-o

Apontar e clicar com o mouse eacute a principal maneira de interagir com o computador Para mais

informaccedilotildees consulte Usando o mouse

Teclado

A finalidade principal do teclado eacute digitar texto no computador Ele possui teclas para letras e

nuacutemeros exatamente como em uma maacutequina de escrever A diferenccedila estaacute nas teclas especiais

As teclas de funccedilatildeo localizadas na linha superior executam funccedilotildees diferentes dependendo

de onde satildeo usadas

O teclado numeacuterico localizado agrave direita na maioria dos teclados permite inserir nuacutemeros

rapidamente

As teclas de navegaccedilatildeo como as teclas de seta permitem mover sua posiccedilatildeo dentro de

documentos ou paacuteginas da Web

Teclado

Vocecirc tambeacutem pode usar o teclado para executar muitas das mesmas tarefas que executa com

um mouse Para mais informaccedilotildees consulte Usando o teclado

Monitor

O monitor exibe informaccedilotildees em forma visual usando texto e elementos graacuteficos A parte do

monitor que exibe as informaccedilotildees eacute chamada tela Como a tela de uma televisatildeo a tela de um

computador pode mostrar imagens paradas ou em movimento

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3365

33

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Existem dois tipos baacutesicos de monitores CRT (tubo de raios catoacutedicos) e LCD (viacutedeo de cristal

liacutequido) Ambos produzem imagens niacutetidas mas os monitores LCD levam vantagem por serem

mais finos e mais leves

Monitor LCD (agrave esquerda) monitor CRT (agrave direita)

Impressora

Uma impressora transfere dados de um computador para o papel Vocecirc natildeo precisa de

impressora para usar o computador mas se tiver uma poderaacute imprimir emails cartotildees convites

anuacutencios e outros materiais Muitas pessoas tambeacutem preferem imprimir suas fotos em casa

Os dois principais tipos de impressora satildeo a jato de tinta e a laser As impressoras a jato de tinta

satildeo as mais populares para uso domeacutestico Elas podem imprimir em preto e branco ou em cores

e produzem fotos de alta qualidade quando usadas com papel especial As impressoras a laser

satildeo mais raacutepidas e mais adequadas para uso intenso

Impressora a jato de tinta (agrave esquerda) impressora a laser (agrave direita)

Alto-falantes

Os alto-falantes satildeo usados para tocar som Eles podem vir embutidos na unidade de sistema ou

ser conectados com cabos Satildeo eles que permitem ouvir muacutesica e efeitos de som no computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3465

34

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Alto-falantes do computador

Modem

Para conectar o computador agrave Internet vocecirc precisa de um modem um dispositivo que envia e

recebe informaccedilotildees do computador por linha telefocircnica ou cabo de alta velocidade Agraves vezes os

modems vecircm embutidos na unidade de sistema mas os de alta velocidade normalmente satildeo

componentes separados

Modem a cabo

O QUE Eacute O SOFTWARE

O Software eacute uma aplicaccedilatildeo ou programa do computador escrita numa determinadalinguagem interpretaacutevel por uma determinada maacutequina (o processador de um computador ou

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3565

35

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

outro equipamento) e que permite executar determinadas tarefas para as quais o software foi

projetado Estes programas satildeo compostos por uma sequecircncia de instruccedilotildees (os comandos) e de

declaraccedilotildees de dados as quais satildeo armazenaacuteveis num meio digital

Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por um

computador com o objetivo de executar tarefas especiacuteficas Tambeacutem pode ser definido como

os programas que comandam o funcionamento de um computador

Em um computador o software eacute classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer

instruccedilotildees para o hardware O hardware eacute toda a parte fiacutesica que constitui o computador por

exemplo a CPU a memoacuteria e os dispositivos de entrada e saiacuteda O software eacute constituiacutedo por

todos os programas que existem para um referido sistema quer sejam produzidos pelo proacuteprio

utente ou pelo fabricante do computador

O termo inglecircs software foi usado pela primeira vez em 1958 em um artigo escrito pelo cientistaamericano John Wilder Tukey Foi tambeacutem ele o responsaacutevel por introduzir o termo bit para

designar diacutegito binaacuterio

Os softwares podem ser classificados como

SOFTWARE DE SISTEMA

Geralmente dividido em SISTEMAS OPERACIONAIS e PROGRAMAS UTILITAacuteRIOS Para

comeccedilar os Sist Operacionais satildeo de grande importacircncia pois eles nos datildeo a opccedilatildeo de dizer ao

computador o que ele deve fazer Dois exemplos bastante conhecidos do nosso puacuteblico satildeoo Mac o Windows e o Linux Os Programas utilitaacuterios geralmente satildeo softwares de menor porte

com funccedilotildees mais especificas tipo Verificaccedilatildeo de Disco Coacutepias de Seguranccedila entre outros

SOFTWARE APLICATIVO

Neste tipo de software se enquadram todos aqueles programas que satildeo utilizados na execuccedilatildeo

de tarefas especiacuteficas Posso citar vaacuterios exemplos mas os mais comuns satildeo os processadores

de texto como o Word que servem para trabalhar com os mais diversos tipos de textos emitir

etiquetas e fazer formulaacuterios as planilhas eletrocircnicas como o Excel satildeo poderosas ferramentas

de caacutelculos que facilitam tanto aquele trabalho aacuterduo de matemaacutetica fazer graacuteficos com real

representaccedilatildeo dos dados eacute uma coisa muito boa pra quem precisa e por uacuteltimo o que muitos

usam mas natildeo sabem o nome ao certo que satildeo os Browsers ou Navegadores softwares usados

para navegar na Web dentre eles os mais conhecidos atualmente satildeo Windows Internet

Explorer Firefox Google Chrome Opera e Safaacuteri

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3665

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3765

37

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

hoje eles satildeo bastante usados em situaccedilotildees de treinamentos de pessoas para enfrentar casos no

seu dia-a-dia

SOFTWARE DE JOGOS

Geralmente satildeo softwares relacionados a entretenimento para proporcionar lazer e diversatildeo

Dispotildeem de muitos recursos interativos e existem de todos os tipos desde estrateacutegias ateacute

simulaccedilotildees reais de muitas coisas como corridas (Need for Speed) ateacute mesmo de vida como o

Second Life

SOFTWARES ABERTOS

Satildeo aqueles que permitem que o usuaacuterio produza com liberdade e criatividade se classificam

nessa categoria aqueles softwares de apresentaccedilotildees bancos de dados e vaacuterios outros

Para fixar

Descreva uma definiccedilatildeo para os tipos de softwares

Software de Sistema_____________________________________________________________

Software Aplicativo ______________________________________________________________

Software de Linguagem __________________________________________________________

Software abertos _______________________________________________________________

Capiacutetulo 4 - Conceitos Baacutesicos de Banco de Dados

Segundo Korth um banco de dados ldquoeacute uma coleccedilatildeo de dados inter -relacionados

representando informaccedilotildees sobre um domiacutenio especiacuteficordquo ou seja sempre que for possiacutevel

agrupar informaccedilotildees que se relacionam e tratam de um mesmo assunto posso dizer que tenho

um banco de dados

Podemos exemplificar situaccedilotildees claacutessicas como uma lista telefocircnica um cataacutelogo de CDs ou um

sistema de controle de RH de uma empresa

Jaacute um sistema de gerenciamento de banco de dados (SGBD) eacute um software que possui

recursos capazes de manipular as informaccedilotildees do banco de dados e interagir com o usuaacuterio

Exemplos de SGBDs satildeo Oracle SQL Server DB2 PostgreSQL MySQL o proacuteprio Access ouParadox entre outros

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3865

38

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Por uacuteltimo temos que conceituar um sistema de banco de dados como o conjunto de quatro

componentes baacutesicos dados hardware software e usuaacuterios Date conceituou que ldquosistema de

bancos de dados pode ser considerado como uma sala de arquivos eletrocircnicardquo A Figura 1 ilustra

os componentes de um sistema de banco de dados

Componentes de um sistema de banco de dados

Os objetivos de um sistema de banco de dados satildeo o de isolar o usuaacuterio dos detalhes

internos do banco de dados (promover a abstraccedilatildeo de dados) e promover a independecircncia dos

dados em relaccedilatildeo agraves aplicaccedilotildees ou seja tornar independente da aplicaccedilatildeo a estrateacutegia de

acesso e a forma de armazenamento

Abstraccedilatildeo de dados

O sistema de banco de dados deve garantir uma visatildeo totalmente abstrata do banco de

dados para o usuaacuterio ou seja para o usuaacuterio do banco de dados pouco importa qual unidade de

armazenamento estaacute sendo usada para guardar seus dados contanto que os mesmos estejam

disponiacuteveis no momento necessaacuterio

Esta abstraccedilatildeo se daacute em trecircs niacuteveis (Figura 2) Niacutevel de visatildeo do usuaacuterio as partes do banco de dados que o usuaacuterio tem acesso de

acordo com a necessidade individual de cada usuaacuterio ou grupo de usuaacuterios

Niacutevel conceitual define quais os dados que estatildeo armazenados e qual o relacionamento

entre eles

Niacutevel fiacutesico eacute o niacutevel mais baixo de abstraccedilatildeo em que define efetivamente de que maneira

os dados estatildeo armazenados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3965

39

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 2 Niacuteveis de abstraccedilatildeo

Projeto de banco de dados

Todo bom sistema de banco de dados deve apresentar um projeto que visa a organizaccedilatildeo das

informaccedilotildees e utilizaccedilatildeo de teacutecnicas para que o futuro sistema obtenha boa performance e

tambeacutem facilite infinitamente as manutenccedilotildees que venham a acontecer

O projeto de banco de dados se daacute em duas fases

Modelagem conceitual Projeto loacutegico

Estas duas etapas se referem a um sistema de banco de dados ainda natildeo implementado ou seja

que ainda natildeo exista um novo projeto Para os casos em que o banco de dados jaacute exista mas eacute

um sistema legado por exemplo ou um sistema muito antigo sem documentaccedilatildeo o processo de

projeto de banco de dados se daraacute atraveacutes da utilizaccedilatildeo de uma teacutecnica chamada de Engenharia

Reversa que seraacute visto em outra oportunidade

Modelo conceitual

Eacute a descriccedilatildeo do BD de maneira independente ao SGBD ou seja define quais os dados

que apareceratildeo no BD mas sem se importar com a implementaccedilatildeo que se daraacute ao BD Desta

forma haacute uma abstraccedilatildeo em niacutevel de SGBD

Uma das teacutecnicas mais utilizadas dentre os profissionais da aacuterea eacute a abordagem entidade-

relacionamento (ER) onde o modelo eacute representado graficamente atraveacutes do diagrama entidade-

relacionamento (DER) (Figura 3)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 16: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1665

16

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

uma rede a fim de poder pocircr conjuntamente estas informaccedilotildees daiacute o nome banco Fala-se

geralmente de sistema de informaccedilatildeo para designar toda a estrutura que reuacutene os meios

organizados para poder compartilhar dados

DADOS amp INFORMACcedilOtildeES

Muitos consideram dados e informaccedilotildees como palavras sinocircnimas mas na verdade natildeo satildeo

Para entender o que eacute um banco de dados eacute muito importante saber a diferenccedila entre essas duas

palavras

Dados satildeo fatos brutos em sua forma primaacuteria E muitas vezes os dados podem natildeo fazer

sentido sozinhos

Informaccedilotildees consistem no agrupamento de dados de forma organizada para fazer sentido

gerar conhecimento

Por exemplo o nuacutemero 2001 isoladamente faz algum sentido Natildeo Isso eacute um dado E se eu

dissesse ldquoAno do atentado terrorista agraves torres gecircmeas 2001Prime Agora faz sentido Isso eacute

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1765

17

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

uma informaccedilatildeo Um banco de dados eacute uma estrutura de dados organizada que permite a

extraccedilatildeo de informaccedilotildees

Metadados ndash Eacute todo dado relativo a outro dado eacute chamado de metadados No exemplo anterior

do ano 2001 o dado ldquoAno do atentado terrorista agraves torres gecircmeasrdquo eacute um metadado pois ele eacute um

dado sobre o dado ldquo2001rdquo Outro exemplo mais comum em banco de dados o campo telefone da

tabela cliente tem entre outros os seguinte metadados nome (telefone) tipo (texto) tamanho (30

caracteres) obrigatoriedade (natildeo) etc

Um banco de dados eacute formado por dado e metadados Sem os metadados natildeo seria

possiacutevel organizar e extrair informaccedilotildees de um banco de dados

Para Fixar

Dados - Em informaacutetica designa-se por dados os elementos de partida que servem de base

para o tratamento e sobre os quais o computador efetua as operaccedilotildees necessaacuterias agrave tarefa emquestatildeo

Os dados satildeo uma representaccedilatildeo dos fatos conceitos ou instruccedilotildees de uma maneira

normalizada que se adapte agrave comunicaccedilatildeo interpretaccedilatildeo e processamento pelo ser humano ou

atraveacutes de maacutequinas automaacuteticas

Os dados satildeo representados por siacutembolos como por exemplo as letras do alfabeto a b c

etc mas natildeo satildeo em si a informaccedilatildeo desejada

ExemploO I O C O M B - satildeo dados mas natildeo eacute informaccedilatildeo perceptiacutevel ao homem

A informaccedilatildeo natildeo eacute mais do que dados organizados e ordenados de forma uacutetil Isto eacute informaccedilatildeo

eacute o conhecimento produzido como resultado do processamento de dados

Se processarmos os dados que tiacutenhamos anteriormente entatildeo obtemos a informaccedilatildeo

O I O C O M B - Dados

- Processamento

C O M B O I O ndash Informaccedilatildeo

Para fixar

Escreva o significado de

Dados___________________________________________________________________

_________________________________________________________________________

Informaccedilatildeo_______________________________________________________________

_________________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1865

18

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Metadados_______________________________________________________________

_________________________________________________________________________

Banco de

dados___________________________________________________________________

_________________________________________________________________________

A histoacuteria dos bancos de dados

Hoje os bancos de dados satildeo essenciais para muitas empresas e estatildeo no coraccedilatildeo de

muitos sistemas computacionais Ter acesso raacutepido agraves informaccedilotildees eacute muito importante para a

correta tomada de decisotildees em um negoacutecio Se vocecirc pretende trabalhar com desenvolvimento de

softwares com certeza precisaraacute trabalhar com bancos de dados em algum momento Conhecer

a histoacuteria dos bancos de dados e como eles evoluiacuteram eacute muito importante para entender como os

bancos de dados mais comuns satildeo organizados Entatildeo como aconteceu a evoluccedilatildeo dos bancos

de dados

Antigamente as empresas armazenavam dados em fichas de papel que eram organizadas

em arquivos fiacutesicos atraveacutes de pastas Extrair informaccedilotildees e manter esses arquivos organizados

era uma tarefa muito custosa Aleacutem disso o acesso agrave informaccedilatildeo dependia da localizaccedilatildeo

geograacutefica dos arquivos Enfim esses arquivos fiacutesicos evoluiacuteram para arquivos digitais No iniacutecio

cada entidade (clientes funcionaacuterios produtos etc) era um arquivo de dados que eram

acompanhados de um ldquosoftware simplesrdquo para manipular os dados do arquivo esses softwares

permitiam realizar operaccedilotildees de cadastro alteraccedilatildeo exclusatildeo e consulta nos arquivos digitais De

fato melhorou bastante principalmente a tarefa de consulta de informaccedilotildees poreacutem os arquivos

digitais eram ainda uma versatildeo melhorada dos arquivos fiacutesicos

Mas as entidades precisavam relacionar-se por exemplo um produto eacute fornecido por

um fornecedor e com os arquivos digitais relacionaacute-las natildeo era uma tarefa muito trivial os

ldquosoftwares simplesrdquo para manipular os arquivos digitais comeccedilaram a ficar ldquocomplexosrdquo para

permitir os relacionamentos entre entidades Entatildeo na deacutecada de 60 a empresa IBM investiu

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1965

19

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

fortemente em pesquisas para solucionar estes problemas dos bancos de dados digitais

primitivos Vaacuterios modelos de bancos de dados surgiram nesta eacutepoca dentre eles os modelos

hieraacuterquicos e rede

Em junho de 1970 o pesquisador Edgar Frank ldquoTedrdquo Codd da IBM mudou a histoacuteria dos

bancos de dados apresentando o modelo relacional no artigo intitulado ldquoA Relational Model of

Data for Large Shared Data Banksrdquo (Um modelo relacional de dados para grandes bancos de

dados compartilhados) onde o autor apresentou uma forma de usuaacuterios sem conhecimento

teacutecnico armazenarem e extraiacuterem grandes quantidades de informaccedilotildees de um banco de dados

Esse artigo foi o grande impulso para a evoluccedilatildeo dos bancos de dados a partir do artigo de ldquoTedrdquo

Codd que os cientistas aprofundaram a ideia de criar o modelo de banco de dados relacional

BANCO DE DADOS RELACIONAL

Apesar de ter sido o marco dos bancos de dados relacionais o artigo de Codd natildeo foimuito explorado no iniacutecio Soacute no final da deacutecada de 70 que foi desenvolvido um sistema baseado

nas ideias do cientista o ldquoSistema Rrdquo Junto com esse sistema foi criado a linguagem de consulta

estruturada (SQL ndash Structured Query Language) que se tornou a linguagem padratildeo para bancos

de dados relacionais Embora tenha contribuiacutedo para a evoluccedilatildeo dos bancos de dados

relacionais o ldquoSystem Rrdquo natildeo foi muito bem sucedido comercialmente mas os sistemas de banco

de dados seguintes foram baseados nele

Nos anos 80 surgiram outros bancos de dados a Oracle apresentou o Oracle 2 e a IBMo SQLDS (que se tornou DB2) ambos sistemas comerciais de bancos de dados Na sequencia

vieram SQL Server MySQL DBase III Paradox etchellip

BANCOS DE DADOS HOJE

Atualmente existem vaacuterios modelos de bancos de dados tais como orientado a objetos

orientado a documentos etc Mas o mais comum ainda eacute o banco de dados relacional A decisatildeo

entre qual modelo de banco de dados utilizarem baseia-se no tipo de dados que vocecirc pretende

armazenar Por exemplo se vocecirc for armazenar uma grande quantidade de dados em um modelo

pequeno (imagine um banco de dados para o twitter) eacute mais indicado utilizar um banco de dados

orientado a documentos a um banco de dados relacional Muitas questotildees envolvem essa

decisatildeo mas natildeo eacute uma questatildeo de superioridade entre uma ou outra tecnologia todas tecircm proacutes

e contras e satildeo mais indicadas ou natildeo para cada problema

Para fixar

Faccedila um breve resumo sobre o surgimos dos bancos de dados

______________________________________________________________________________

______________________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2065

20

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

Dados amp Informaccedilatildeo

A informaccedilatildeo eacute encarada atualmente como um dos recursos mais importantes de uma

organizaccedilatildeo contribuindo decisivamente para a sua maior ou menor competitividade De fato

com o aumento da concorrecircncia tornou-se vital melhorar as capacidades de decisatildeo a todos osniacuteveis

Hoje mais que nunca a tomada de decisatildeo nas organizaccedilotildees eacute um processo complexo

dada a qualidade de informaccedilatildeo em jogo a sua complexidade e a frequecircncia com que se altera

No entanto para que possa ser utilizada com um apoio eficaz agrave tomada de decisatildeo a informaccedilatildeo

soacute tecircm valor se verificarem simultaneamente algumas condiccedilotildees

ATUALIDADE ndash O valor da informaccedilatildeo dependeraacute em grande parte da sua atualidade

Dado o dinamismo verificado em todos os setores da sociedade em geral e do ambiente

empresarial em particular o periacuteodo de validade da informaccedilatildeo eacute cada vez mais curto Torna-se

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2165

21

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

necessaacuterio dispor de fontes de informaccedilatildeo que acompanhem continuamente essas modificaccedilotildees

Soacute com base em informaccedilatildeo atualizada se podem tomar decisotildees acertadas

CORRECcedilAtildeO ndash Natildeo basta que a informaccedilatildeo seja atual eacute tambeacutem necessaacuterio que na

medida do possiacutevel seja rigorosa Soacute com informaccedilatildeo correta se pode decidir com confianccedila

RELEVAcircNCIA ndash Dado o grande de volume de informaccedilatildeo envolvida o processo de tomada

de decisatildeo ao contraacuterio de ser facilitado pode ser dificultado pelo excesso de informaccedilatildeo A

informaccedilatildeo deve ser devidamente filtrada de tal forma que apenas aquela com relevacircncia para

cada situaccedilatildeo seja considerada

DISPONIBILIDADE ndash Ainda que a informaccedilatildeo verifique os trecircs requisitos anteriores a sua

utilidades poderaacute ser posta em causa se natildeo puder ser disponibilizada de forma imediata no

momento em que eacute solicitada As decisotildees muito ponderadas com o longo periacuteodo de gestaccedilatildeo

satildeo cada vez mais situaccedilotildees do passado Hoje dadas as caracteriacutesticas do meio envolvente oprocesso de tomada de decisatildeo tem que ser quase instantacircneo Para isso a informaccedilatildeo tem que

ser disponibilizada rapidamente caso contraacuterio deixa de ser uacutetil

LEGIBILIDADE - Esta condiccedilatildeo apesar de apresentada em uacuteltimo lugar natildeo eacute por isso

menos importante A informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada

De fato de nada vale que a informaccedilatildeo seja atual precisa relevante e disponibilizada em

tempo oportuno se natildeo puder ser entendida A forma como eacute disponibilizada tem tambeacutem grande

importacircncia informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada A forma como eacutedisponibilizada tem tambeacutem grande importacircncia

Quanto aos requisitos de atualidade e correccedilatildeo da informaccedilatildeo para que esta possa ser

correta e atual os dados de onde eacute derivada tecircm forccedilosamente que ser precisos e atualizados

Quanto aos requisitos de relevacircncia disponibilidade e legibilidade da informaccedilatildeo estes tecircm mais

a ver com os meios utilizados para o processamento dos dados

Como eacute que a informaccedilatildeo eacute organizada

A organizaccedilatildeo da informaccedilatildeo eacute efetuada de acordo com criteacuterios distintos como

Hierarquia dos seus componentes

O tipo de assunto a que se refere

Forma de armazenamento

Quanto agrave HIERARQUIA DOS COMPONENTES DA INFORMACcedilAtildeO esta eacute organizada em

Caracteres Campos Registros Ficheiros Caracteres - podem ser numeacutericos alfabeacuteticos ou

sinais de pontuaccedilatildeo Campos - satildeo conjuntos de caracteres que identificam um componente de

um registo Registos - satildeo agrupamentos de campos descritivos de uma realidade Ficheiros - satildeo

conjuntos de registos cuja informaccedilatildeo eacute estruturalmente analoacutegica

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2265

22

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Quanto AO TIPO DE ASSUNTO a que se refere agrave informaccedilatildeo

Esta pode ser como que etiquetada de modo a tornar faacutecil a sua procura e a evitar perdas

de tempo

Quando a informaccedilatildeo estaacute armazenada em ficheiros estes indicam o seu tipo atraveacutes de

uma extensatildeo ao nome do ficheiro

Algumas das extensotildees mais comuns satildeo

- COM ficheiro de comandos - BACK backup ou coacutepias de seguranccedila- EXE executaacuteveis - SYS ficheiros de sistema

- BAT processamento batch - XLS folha de caacutelculo provenientes do Excel

- TXT texto no formato ASCII - PPT apresentaccedilotildees provenientes do PowerPoint

- PAS programas em Linguagem Pascal - MBD base de dados provenientes do Access

- C programas em Linguagem C - DOC documentos provenientes de um processador de

texto

Quanto Agrave FORMA DE ARMAZENAMENTO da informaccedilatildeoRelativamente ao armazenamento por exemplo no disco riacutegido do computador a

informaccedilatildeo eacute organizada em diretorias cujo nome revela o tipo de ficheiros que aiacute se encontram

podendo cada diretorias conter diversas subdiretorias

Organizaccedilatildeo dos dados num Computador

Os dados que fornecemos a um computador para processar podem ser de trecircs tipos

quantitativos classificativos referenciais

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2365

23

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Dados quantitativos - satildeo os que exprimem quantidades e por isso normalmente servem

de base para caacutelculos aritmeacuteticos Exemplo a ficha escolar as notas do periacuteodo as faltas o total

das faltas

bull Dados classificativos - satildeo os que descrevem ou especificam os elementos envolvidos e

quantificados Normalmente servem de complemento aos dados quantitativos identificando

pessoas objetos situaccedilotildees etc Natildeo servem portanto para elementos de caacutelculo Exemplo a

ficha escolar o nome do aluno o nome da disciplina o nome do professor

bull Dados referenciais - satildeo dados que permitem controlar e referenciar os elementos

tratados Exemplo a ficha escolar o ano letivo o nuacutemero do aluno a turma

Para fixar

Escreva de forma resumida como podemos organizar os dados

_________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

Tipos de Operaccedilotildees realizadas sobre os dados

O tipo de operaccedilotildees efetuadas depende dos objetivos do processamento e igualmente dostipos de dados nele envolvidos pois o computador pode processar dados numeacutericos ou natildeo

numeacutericos Assim temos como operaccedilotildees possiacuteveis num processamento

bull Operaccedilotildees aritmeacuteticas - satildeo efetuadas apenas sobre dados numeacutericos e satildeo

basicamente constituiacutedas por somas subtraccedilotildees multiplicaccedilotildees divisotildees e outras similares

bull Operaccedilotildees loacutegicas - satildeo efetuadas sobre dados numeacutericos ou natildeo numeacutericos Estas

operaccedilotildees satildeo tambeacutem por vezes designadas por operaccedilotildees de comparaccedilatildeo

bull Operaccedilotildees de movimentaccedilatildeo interna - satildeo efetuadas sobre qualquer tipo de dados e

consistem na coacutepia e mudanccedila de localizaccedilatildeo interna dos dados na memoacuteria do computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2465

24

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Operaccedilatildeo de InputOutput - satildeo as operaccedilotildees que envolvem os oacutergatildeos de entrada e

saiacuteda permitindo a comunicaccedilatildeo entre o operador e a maacutequina

Funccedilotildees do processamento de dados

Considera-se como processamento de dados o conjunto de todas as operaccedilotildees efetuadas desde

a entrada dos dados ateacute agrave saiacuteda da informaccedilatildeo Todas estas operaccedilotildees de vaacuterios tipos satildeo

normalmente associadas a seis funccedilotildees do processamento de dados input ordenaccedilatildeo

processamento armazenamento output e controle

bull Input - fase de seleccedilatildeo e aquisiccedilatildeo dos dados pelo computador

bull Ordenaccedilatildeo - esta eacute uma funccedilatildeo auxiliar O seu objetivo eacute dispor os dados de uma forma

organizada (ordenada) de modo a facilitar o seu tratamento Se os dados se mantiverem

ordenados segundo um determinado criteacuterio preacute-definido a sua pesquisa eacute mais faacutecil o que faz

aumentar a velocidade do processamento

bull Processamento - considera-se processamento ao conjunto de todas as operaccedilotildees

efetuadas internamente pelo computador na manipulaccedilatildeo dos dados

bull Armazenamento - esta eacute uma funccedilatildeo muito importante que permite posteriormente

analisar as etapas e os resultados do processamento

bull Output - eacute a obtenccedilatildeo de resultados sob a forma de informaccedilatildeo significativa para as

pessoas a quem se destina

bull Controle - a sua finalidade eacute detectar corrigir e eliminar possiacuteveis erros ou afastamentosem relaccedilatildeo aos objetivos inicialmente traccedilados

Utilidade de um banco de dados

Um banco de dados permite pocircr dados agrave disposiccedilatildeo de usuaacuterios para uma consulta uma

introduccedilatildeo ou uma atualizaccedilatildeo assegurando-se dos direitos atribuiacutedos a estes uacuteltimos Isso eacute

ainda mais uacutetil quando os dados informaacuteticos satildeo cada vez mais numerosos

Um banco de dados pode ser local quer dizer utilizaacutevel em uma maacutequina por um usuaacuterio

ou repartida quer dizer que as informaccedilotildees satildeo armazenadas em maacutequinas distantes eacessiacuteveis por rede A vantagem essencial da utilizaccedilatildeo dos bancos de dados eacute a possibilidade

de poder ser acessada por vaacuterios usuaacuterios simultaneamente

A gestatildeo dos bancos de dados

A fim de poder controlar os dados bem como os usuaacuterios a necessidade de um sistema de

gestatildeo fez-se sentir rapidamente A gestatildeo do banco de dados faz-se graccedilas a um sistema

chamado SGBD (sistema de gestatildeo de bancos de dados) ou em inglecircs DBMS (Database

managment system) O SGBD eacute um conjunto de serviccedilos (aplicaccedilotildees software) que permitem

gerenciar os bancos de dados quer dizer

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2565

25

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Permitir o acesso aos dados de maneira simples

Autorizar um acesso agraves informaccedilotildees a muacuteltiplos usuaacuterios

Manipular os dados presentes no banco de dados (inserccedilatildeo supressatildeo modificaccedilatildeo)

O SGBD pode decompor-se em trecircs subsistemas

O sistema de gestatildeo de arquivos permite o armazenamento das informaccedilotildees num suporte

fiacutesico

O SGBD interno gerencia a emissatildeo das informaccedilotildees

O SGBD externo representa a interface com o usuaacuterio

Bancos de dados satildeo conjuntos de dados com uma estrutura regular que organizam

informaccedilatildeo Um banco de dados normalmente agrupa informaccedilotildees utilizadas para um mesmo fim

O modelo de dados mais adotado hoje em dia eacute o modelo relacional onde as estruturas

tecircm a forma de tabelas compostas por linhas e colunas

Resumindo um banco de dados eacute uma coleccedilatildeo de dados relacionados Entende-se por

dado toda a informaccedilatildeo que pode ser armazenada e que apresenta algum significado impliacutecito

dentro do contexto ao qual ele se aplica Por exemplo num sistema bancaacuterio uma pessoa eacuteidentificada pelo seu cpf(cliente) Em um sistema escolar a pessoa eacute identificada pelo seu nuacutemero

de matriacutecula(aluno) Aleacutem disso os dados que seratildeo armazenados em cada situaccedilatildeo podem

diferir consideravelmente

Atividades

1) Onde utilizar um banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2665

26

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2) Como funciona um sistema gerenciador de banco de dados

3) Como funciona o modelo relacional

Modelo Relacional

O modelo relacional eacute uma teoria matemaacutetica desenvolvida por Edgar Frank Codd para

descrever como as bases de dados devem funcionar Embora esta teoria seja a base para o

software de bases de dados relacionais muito poucos sistemas de gestatildeo de bases de dados

seguem o modelo de forma restrita e todos tecircm funcionalidades que violam a teoria desta forma

variando a complexidade e o poder A discussatildeo se esses bancos de dados merecem ser

chamados de relacional ficou esgotada com tempo com a evoluccedilatildeo dos bancos existentes

De acordo com a arquitetura ANSI SPARC em trecircs niacuteveis os Bancos de dados

relacionais consistem de trecircs componentes

bull uma coleccedilatildeo de estruturas de dados formalmente chamadas de relaccedilotildees ou

informalmente tabelas compondo o niacutevel conceitual

bull uma coleccedilatildeo dos operadores a aacutelgebra e o caacutelculo relacionais que constituem a base da

linguagem SQL

bull uma coleccedilatildeo de restriccedilotildees da integridade definindo o conjunto consistente de estados de

base de dados e de alteraccedilotildees de estados As restriccedilotildees de integridade podem ser de quatro

tipos

bull domiacutenio (ou tipo de dados) bull atributo

bull restriccedilotildees de base de dados

De acordo com o Princiacutepio de Informaccedilatildeo toda informaccedilatildeo tem de ser representada como dados

qualquer tipo de atributo representa relaccedilotildees entre conjuntos de dados

Nos bancos de dados relacionais os relacionamentos entre as tabelas natildeo satildeo codificados

explicitamente na sua definiccedilatildeo Em vez disso se fazem implicitamente pela presenccedila de

atributos chave As bases de dados relacionais permitem aos utilizadores (incluindo

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2765

27

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

programadores) escreverem consultas (queries) reorganizando e utilizando os dados de forma

flexiacutevel e natildeo necessariamente antecipada pelos projetistas originais

Esta flexibilidade eacute especialmente importante em bases de dados que podem ser utilizadas

durante deacutecadas tornando as bases de dados relacionais muito populares no meio comercial

Um dos pontos fortes do modelo relacional de banco de dados eacute a possibilidade de

definiccedilatildeo de um conjunto de restriccedilotildees de integridade Estas definem os conjuntos de estados e

mudanccedilas de estado consistentes do banco de dados determinando os valores que podem e os

que natildeo podem ser armazenados

Aplicaccedilotildees de bancos de dados

Bancos de dados satildeo usados em muitas aplicaccedilotildees enquanto atravessando virtualmente a

gama inteira de software de computador Bancos de dados eacute o meacutetodo preferido de

armazenamento para aplicaccedilotildees multiusuaacuterias grandes onde a coordenaccedilatildeo entre muitosusuaacuterios eacute necessaacuteria Ateacute mesmo usuaacuterios individuais os acham convenientes entretanto e

muitos programas de correio eletrocircnico e os organizadores pessoais estatildeo baseados em

tecnologia de banco de dados standard

Aplicativo de Banco de Dados

Um aplicativo de banco de dados eacute um tipo de software exclusivo para gerenciar um banco

de dados Aplicativos de banco de dados abrangem uma vasta variedade de necessidades e

objetivos de pequenas ferramentas como uma agenda ateacute complexos sistemas empresariaispara desempenhar tarefas como a contabilidade

O termo Aplicativo de Banco de dados usualmente se refere a softwares que oferecem

uma interface para o banco de dados Exemplos de aplicativos de banco de dados satildeo Microsoft

Visual FoxPro Microsoft Access dBASE FileMaker (em certa medida) HyperCard MySQL

PostgreSQL Microsoft SQL Server e Oracle

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2865

28

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Capiacutetulo 3 - HARDWARE E SOFTWARE

O QUE Eacute O HARDWARE

No acircmbito da informaacutetica eacute dada a designaccedilatildeo de hardware a todos os componentes

fiacutesicos que fazem parte de um sistema informaacutetico incluiacutedo toda a parte fiacutesica de um computador

(nomeadamente os processadores motherbord disco riacutegido placas de som placas de viacutedeo

memoacuterias etc) e todos os perifeacutericos (tais como teclados mouse monitores impressoras

scanners modems entre outros)

Peccedilas de um computador

Se vocecirc usa um computador desktop jaacute deve saber que natildeo existe uma parte uacutenica

chamada computador Um computador eacute na verdade um sistema de muitas partes funcionando

em conjunto As partes fiacutesicas que vocecirc pode ver e tocar satildeo denominadas

coletivamente hardware (O software por outro lado se refere agraves instruccedilotildees ou programas que

dizem ao hardware o que fazer)

A ilustraccedilatildeo a seguir mostra os dispositivos de hardware mais comuns em um sistema de

computador desktop Seu sistema pode ter uma aparecircncia um pouco diferente mas

provavelmente possui a maioria destas peccedilas Um computador laptop possui peccedilas semelhantes

mas as combina em um uacutenico pacote do tamanho de um caderno

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2965

29

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Sistema de computador desktop

Unidade de sistema

A unidade de sistema (Gabinete) eacute o nuacutecleo de um sistema de computador Normalmente

eacute uma caixa retangular colocada sobre a mesa ou embaixo dela Dentro dessa caixa estatildeo os

componentes eletrocircnicos que processam as informaccedilotildees O mais importante desses

componentes eacute a CPU (unidade de processamento central) ou microprocessador que atua como

o ceacuterebro do computador Outro componente eacute a memoacuteria RAM que armazena

temporariamente informaccedilotildees utilizadas pela CPU enquanto o computador estaacute ligado As

informaccedilotildees gravadas na RAM satildeo apagadas quando o computador eacute desligado

Quase todas as outras partes do computador se conectam agrave unidade de sistema por meio

de cabos Os cabos satildeo conectados aportas (aberturas) especiacuteficas geralmente na parte traseira

da unidade de sistema O hardware que natildeo faz parte da unidade de sistema eacute

chamado dispositivo perifeacuterico ou simplesmente dispositivo

Unidade de sistema

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3065

30

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Armazenamento

O computador possui uma ou mais unidades de disco ou seja dispositivos que armazenam

informaccedilotildees em um disco de plaacutestico ou de metal O disco preserva as informaccedilotildees mesmo

quando o computador estaacute desligado

Unidade de disco riacutegido

A unidade de disco riacutegido do computador armazena informaccedilotildees em um disco riacutegido que eacute um

prato riacutegido ou pilha de pratos com uma superfiacutecie magneacutetica Como os discos riacutegidos podem

reter uma grande quantidade de informaccedilotildees normalmente eles funcionam como principal meio

de armazenamento do computador guardando praticamente todos os programas e arquivos Em

geral a unidade de disco riacutegido fica localizada dentro da unidade de sistema

Unidade de disco riacutegidoUnidades de CD e DVD

Hoje em dia quase todos os computadores vecircm equipados com uma unidade de CD ou DVD

geralmente localizada na frente da unidade de sistema As unidades de CD usam lasers para ler

(recuperar) dados de um CD Muitas delas tambeacutem podem gravar dados em CDs Se vocecirc tiver

uma unidade de disco gravaacutevel poderaacute armazenar coacutepias de seus arquivos em CDs vazios A

unidade de CD tambeacutem serve para tocar CDs de muacutesica no computador

CD

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3165

31

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

As unidades de DVD fazem o mesmo que as unidades de CD e tambeacutem lecircem DVDs Se vocecirc

tiver uma unidade de DVD poderaacute ver filmes no computador Muitas unidades de DVD podem

gravar dados em DVDs vazios

Dica

Se vocecirc tiver uma unidade de CD ou DVD gravaacutevel faccedila backup (copie) periodicamente de seus

arquivos importantes em CDs ou DVDs Dessa forma caso venha a ocorrer alguma falha no disco

riacutegido vocecirc natildeo perderaacute os dados

Unidade de disquete

As unidades de disquete armazenam informaccedilotildees em discos tambeacutem chamados discos

flexiacuteveis ou disquetes Comparado a CDs e DVDs os disquetes podem armazenar apenas uma

pequena quantidade de dados Eles tambeacutem recuperam informaccedilotildees de forma mais lenta e satildeo

mais vulneraacuteveis a danos Por esses motivos as unidades de disquete satildeo cada vez menosusadas embora ainda sejam incluiacutedas em alguns computadores

Disquete

Por que estes discos satildeo chamados de disquetes Apesar de a parte externa ser composta de

plaacutestico riacutegido isso eacute apenas a capa O interior do disco eacute feito de um material de vinil fino e

flexiacutevel

Mouse

Mouse eacute um pequeno dispositivo usado para apontar e selecionar itens na tela do computador

Embora existam mouses de vaacuterias formas o modelo mais comum se assemelha a um rato (como

diz o nome em inglecircs) Ele eacute pequeno e alongado sendo conectado agrave unidade de sistema por um

cabo comprido que faz lembrar uma cauda Alguns mouses mais novos satildeo sem fio

Mouse

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3265

32

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O mouse geralmente possui dois bototildees um botatildeo principal (normalmente o da esquerda) e um

botatildeo secundaacuterio Muitos mouses tambeacutem tecircm uma roda entre os dois bototildees que permite

percorrer as telas de informaccedilotildees

Ponteiros do mouse

Agrave medida que vocecirc move o mouse com a matildeo um ponteiro na tela se move na mesma direccedilatildeo

(A aparecircncia do ponteiro pode mudar dependendo da sua posiccedilatildeo na tela) Quando quiser

selecionar um item aponte para ele e clique no botatildeo principal ou seja pressione-o e solte-o

Apontar e clicar com o mouse eacute a principal maneira de interagir com o computador Para mais

informaccedilotildees consulte Usando o mouse

Teclado

A finalidade principal do teclado eacute digitar texto no computador Ele possui teclas para letras e

nuacutemeros exatamente como em uma maacutequina de escrever A diferenccedila estaacute nas teclas especiais

As teclas de funccedilatildeo localizadas na linha superior executam funccedilotildees diferentes dependendo

de onde satildeo usadas

O teclado numeacuterico localizado agrave direita na maioria dos teclados permite inserir nuacutemeros

rapidamente

As teclas de navegaccedilatildeo como as teclas de seta permitem mover sua posiccedilatildeo dentro de

documentos ou paacuteginas da Web

Teclado

Vocecirc tambeacutem pode usar o teclado para executar muitas das mesmas tarefas que executa com

um mouse Para mais informaccedilotildees consulte Usando o teclado

Monitor

O monitor exibe informaccedilotildees em forma visual usando texto e elementos graacuteficos A parte do

monitor que exibe as informaccedilotildees eacute chamada tela Como a tela de uma televisatildeo a tela de um

computador pode mostrar imagens paradas ou em movimento

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3365

33

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Existem dois tipos baacutesicos de monitores CRT (tubo de raios catoacutedicos) e LCD (viacutedeo de cristal

liacutequido) Ambos produzem imagens niacutetidas mas os monitores LCD levam vantagem por serem

mais finos e mais leves

Monitor LCD (agrave esquerda) monitor CRT (agrave direita)

Impressora

Uma impressora transfere dados de um computador para o papel Vocecirc natildeo precisa de

impressora para usar o computador mas se tiver uma poderaacute imprimir emails cartotildees convites

anuacutencios e outros materiais Muitas pessoas tambeacutem preferem imprimir suas fotos em casa

Os dois principais tipos de impressora satildeo a jato de tinta e a laser As impressoras a jato de tinta

satildeo as mais populares para uso domeacutestico Elas podem imprimir em preto e branco ou em cores

e produzem fotos de alta qualidade quando usadas com papel especial As impressoras a laser

satildeo mais raacutepidas e mais adequadas para uso intenso

Impressora a jato de tinta (agrave esquerda) impressora a laser (agrave direita)

Alto-falantes

Os alto-falantes satildeo usados para tocar som Eles podem vir embutidos na unidade de sistema ou

ser conectados com cabos Satildeo eles que permitem ouvir muacutesica e efeitos de som no computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3465

34

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Alto-falantes do computador

Modem

Para conectar o computador agrave Internet vocecirc precisa de um modem um dispositivo que envia e

recebe informaccedilotildees do computador por linha telefocircnica ou cabo de alta velocidade Agraves vezes os

modems vecircm embutidos na unidade de sistema mas os de alta velocidade normalmente satildeo

componentes separados

Modem a cabo

O QUE Eacute O SOFTWARE

O Software eacute uma aplicaccedilatildeo ou programa do computador escrita numa determinadalinguagem interpretaacutevel por uma determinada maacutequina (o processador de um computador ou

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3565

35

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

outro equipamento) e que permite executar determinadas tarefas para as quais o software foi

projetado Estes programas satildeo compostos por uma sequecircncia de instruccedilotildees (os comandos) e de

declaraccedilotildees de dados as quais satildeo armazenaacuteveis num meio digital

Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por um

computador com o objetivo de executar tarefas especiacuteficas Tambeacutem pode ser definido como

os programas que comandam o funcionamento de um computador

Em um computador o software eacute classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer

instruccedilotildees para o hardware O hardware eacute toda a parte fiacutesica que constitui o computador por

exemplo a CPU a memoacuteria e os dispositivos de entrada e saiacuteda O software eacute constituiacutedo por

todos os programas que existem para um referido sistema quer sejam produzidos pelo proacuteprio

utente ou pelo fabricante do computador

O termo inglecircs software foi usado pela primeira vez em 1958 em um artigo escrito pelo cientistaamericano John Wilder Tukey Foi tambeacutem ele o responsaacutevel por introduzir o termo bit para

designar diacutegito binaacuterio

Os softwares podem ser classificados como

SOFTWARE DE SISTEMA

Geralmente dividido em SISTEMAS OPERACIONAIS e PROGRAMAS UTILITAacuteRIOS Para

comeccedilar os Sist Operacionais satildeo de grande importacircncia pois eles nos datildeo a opccedilatildeo de dizer ao

computador o que ele deve fazer Dois exemplos bastante conhecidos do nosso puacuteblico satildeoo Mac o Windows e o Linux Os Programas utilitaacuterios geralmente satildeo softwares de menor porte

com funccedilotildees mais especificas tipo Verificaccedilatildeo de Disco Coacutepias de Seguranccedila entre outros

SOFTWARE APLICATIVO

Neste tipo de software se enquadram todos aqueles programas que satildeo utilizados na execuccedilatildeo

de tarefas especiacuteficas Posso citar vaacuterios exemplos mas os mais comuns satildeo os processadores

de texto como o Word que servem para trabalhar com os mais diversos tipos de textos emitir

etiquetas e fazer formulaacuterios as planilhas eletrocircnicas como o Excel satildeo poderosas ferramentas

de caacutelculos que facilitam tanto aquele trabalho aacuterduo de matemaacutetica fazer graacuteficos com real

representaccedilatildeo dos dados eacute uma coisa muito boa pra quem precisa e por uacuteltimo o que muitos

usam mas natildeo sabem o nome ao certo que satildeo os Browsers ou Navegadores softwares usados

para navegar na Web dentre eles os mais conhecidos atualmente satildeo Windows Internet

Explorer Firefox Google Chrome Opera e Safaacuteri

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3665

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3765

37

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

hoje eles satildeo bastante usados em situaccedilotildees de treinamentos de pessoas para enfrentar casos no

seu dia-a-dia

SOFTWARE DE JOGOS

Geralmente satildeo softwares relacionados a entretenimento para proporcionar lazer e diversatildeo

Dispotildeem de muitos recursos interativos e existem de todos os tipos desde estrateacutegias ateacute

simulaccedilotildees reais de muitas coisas como corridas (Need for Speed) ateacute mesmo de vida como o

Second Life

SOFTWARES ABERTOS

Satildeo aqueles que permitem que o usuaacuterio produza com liberdade e criatividade se classificam

nessa categoria aqueles softwares de apresentaccedilotildees bancos de dados e vaacuterios outros

Para fixar

Descreva uma definiccedilatildeo para os tipos de softwares

Software de Sistema_____________________________________________________________

Software Aplicativo ______________________________________________________________

Software de Linguagem __________________________________________________________

Software abertos _______________________________________________________________

Capiacutetulo 4 - Conceitos Baacutesicos de Banco de Dados

Segundo Korth um banco de dados ldquoeacute uma coleccedilatildeo de dados inter -relacionados

representando informaccedilotildees sobre um domiacutenio especiacuteficordquo ou seja sempre que for possiacutevel

agrupar informaccedilotildees que se relacionam e tratam de um mesmo assunto posso dizer que tenho

um banco de dados

Podemos exemplificar situaccedilotildees claacutessicas como uma lista telefocircnica um cataacutelogo de CDs ou um

sistema de controle de RH de uma empresa

Jaacute um sistema de gerenciamento de banco de dados (SGBD) eacute um software que possui

recursos capazes de manipular as informaccedilotildees do banco de dados e interagir com o usuaacuterio

Exemplos de SGBDs satildeo Oracle SQL Server DB2 PostgreSQL MySQL o proacuteprio Access ouParadox entre outros

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3865

38

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Por uacuteltimo temos que conceituar um sistema de banco de dados como o conjunto de quatro

componentes baacutesicos dados hardware software e usuaacuterios Date conceituou que ldquosistema de

bancos de dados pode ser considerado como uma sala de arquivos eletrocircnicardquo A Figura 1 ilustra

os componentes de um sistema de banco de dados

Componentes de um sistema de banco de dados

Os objetivos de um sistema de banco de dados satildeo o de isolar o usuaacuterio dos detalhes

internos do banco de dados (promover a abstraccedilatildeo de dados) e promover a independecircncia dos

dados em relaccedilatildeo agraves aplicaccedilotildees ou seja tornar independente da aplicaccedilatildeo a estrateacutegia de

acesso e a forma de armazenamento

Abstraccedilatildeo de dados

O sistema de banco de dados deve garantir uma visatildeo totalmente abstrata do banco de

dados para o usuaacuterio ou seja para o usuaacuterio do banco de dados pouco importa qual unidade de

armazenamento estaacute sendo usada para guardar seus dados contanto que os mesmos estejam

disponiacuteveis no momento necessaacuterio

Esta abstraccedilatildeo se daacute em trecircs niacuteveis (Figura 2) Niacutevel de visatildeo do usuaacuterio as partes do banco de dados que o usuaacuterio tem acesso de

acordo com a necessidade individual de cada usuaacuterio ou grupo de usuaacuterios

Niacutevel conceitual define quais os dados que estatildeo armazenados e qual o relacionamento

entre eles

Niacutevel fiacutesico eacute o niacutevel mais baixo de abstraccedilatildeo em que define efetivamente de que maneira

os dados estatildeo armazenados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3965

39

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 2 Niacuteveis de abstraccedilatildeo

Projeto de banco de dados

Todo bom sistema de banco de dados deve apresentar um projeto que visa a organizaccedilatildeo das

informaccedilotildees e utilizaccedilatildeo de teacutecnicas para que o futuro sistema obtenha boa performance e

tambeacutem facilite infinitamente as manutenccedilotildees que venham a acontecer

O projeto de banco de dados se daacute em duas fases

Modelagem conceitual Projeto loacutegico

Estas duas etapas se referem a um sistema de banco de dados ainda natildeo implementado ou seja

que ainda natildeo exista um novo projeto Para os casos em que o banco de dados jaacute exista mas eacute

um sistema legado por exemplo ou um sistema muito antigo sem documentaccedilatildeo o processo de

projeto de banco de dados se daraacute atraveacutes da utilizaccedilatildeo de uma teacutecnica chamada de Engenharia

Reversa que seraacute visto em outra oportunidade

Modelo conceitual

Eacute a descriccedilatildeo do BD de maneira independente ao SGBD ou seja define quais os dados

que apareceratildeo no BD mas sem se importar com a implementaccedilatildeo que se daraacute ao BD Desta

forma haacute uma abstraccedilatildeo em niacutevel de SGBD

Uma das teacutecnicas mais utilizadas dentre os profissionais da aacuterea eacute a abordagem entidade-

relacionamento (ER) onde o modelo eacute representado graficamente atraveacutes do diagrama entidade-

relacionamento (DER) (Figura 3)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 17: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1765

17

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

uma informaccedilatildeo Um banco de dados eacute uma estrutura de dados organizada que permite a

extraccedilatildeo de informaccedilotildees

Metadados ndash Eacute todo dado relativo a outro dado eacute chamado de metadados No exemplo anterior

do ano 2001 o dado ldquoAno do atentado terrorista agraves torres gecircmeasrdquo eacute um metadado pois ele eacute um

dado sobre o dado ldquo2001rdquo Outro exemplo mais comum em banco de dados o campo telefone da

tabela cliente tem entre outros os seguinte metadados nome (telefone) tipo (texto) tamanho (30

caracteres) obrigatoriedade (natildeo) etc

Um banco de dados eacute formado por dado e metadados Sem os metadados natildeo seria

possiacutevel organizar e extrair informaccedilotildees de um banco de dados

Para Fixar

Dados - Em informaacutetica designa-se por dados os elementos de partida que servem de base

para o tratamento e sobre os quais o computador efetua as operaccedilotildees necessaacuterias agrave tarefa emquestatildeo

Os dados satildeo uma representaccedilatildeo dos fatos conceitos ou instruccedilotildees de uma maneira

normalizada que se adapte agrave comunicaccedilatildeo interpretaccedilatildeo e processamento pelo ser humano ou

atraveacutes de maacutequinas automaacuteticas

Os dados satildeo representados por siacutembolos como por exemplo as letras do alfabeto a b c

etc mas natildeo satildeo em si a informaccedilatildeo desejada

ExemploO I O C O M B - satildeo dados mas natildeo eacute informaccedilatildeo perceptiacutevel ao homem

A informaccedilatildeo natildeo eacute mais do que dados organizados e ordenados de forma uacutetil Isto eacute informaccedilatildeo

eacute o conhecimento produzido como resultado do processamento de dados

Se processarmos os dados que tiacutenhamos anteriormente entatildeo obtemos a informaccedilatildeo

O I O C O M B - Dados

- Processamento

C O M B O I O ndash Informaccedilatildeo

Para fixar

Escreva o significado de

Dados___________________________________________________________________

_________________________________________________________________________

Informaccedilatildeo_______________________________________________________________

_________________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1865

18

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Metadados_______________________________________________________________

_________________________________________________________________________

Banco de

dados___________________________________________________________________

_________________________________________________________________________

A histoacuteria dos bancos de dados

Hoje os bancos de dados satildeo essenciais para muitas empresas e estatildeo no coraccedilatildeo de

muitos sistemas computacionais Ter acesso raacutepido agraves informaccedilotildees eacute muito importante para a

correta tomada de decisotildees em um negoacutecio Se vocecirc pretende trabalhar com desenvolvimento de

softwares com certeza precisaraacute trabalhar com bancos de dados em algum momento Conhecer

a histoacuteria dos bancos de dados e como eles evoluiacuteram eacute muito importante para entender como os

bancos de dados mais comuns satildeo organizados Entatildeo como aconteceu a evoluccedilatildeo dos bancos

de dados

Antigamente as empresas armazenavam dados em fichas de papel que eram organizadas

em arquivos fiacutesicos atraveacutes de pastas Extrair informaccedilotildees e manter esses arquivos organizados

era uma tarefa muito custosa Aleacutem disso o acesso agrave informaccedilatildeo dependia da localizaccedilatildeo

geograacutefica dos arquivos Enfim esses arquivos fiacutesicos evoluiacuteram para arquivos digitais No iniacutecio

cada entidade (clientes funcionaacuterios produtos etc) era um arquivo de dados que eram

acompanhados de um ldquosoftware simplesrdquo para manipular os dados do arquivo esses softwares

permitiam realizar operaccedilotildees de cadastro alteraccedilatildeo exclusatildeo e consulta nos arquivos digitais De

fato melhorou bastante principalmente a tarefa de consulta de informaccedilotildees poreacutem os arquivos

digitais eram ainda uma versatildeo melhorada dos arquivos fiacutesicos

Mas as entidades precisavam relacionar-se por exemplo um produto eacute fornecido por

um fornecedor e com os arquivos digitais relacionaacute-las natildeo era uma tarefa muito trivial os

ldquosoftwares simplesrdquo para manipular os arquivos digitais comeccedilaram a ficar ldquocomplexosrdquo para

permitir os relacionamentos entre entidades Entatildeo na deacutecada de 60 a empresa IBM investiu

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1965

19

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

fortemente em pesquisas para solucionar estes problemas dos bancos de dados digitais

primitivos Vaacuterios modelos de bancos de dados surgiram nesta eacutepoca dentre eles os modelos

hieraacuterquicos e rede

Em junho de 1970 o pesquisador Edgar Frank ldquoTedrdquo Codd da IBM mudou a histoacuteria dos

bancos de dados apresentando o modelo relacional no artigo intitulado ldquoA Relational Model of

Data for Large Shared Data Banksrdquo (Um modelo relacional de dados para grandes bancos de

dados compartilhados) onde o autor apresentou uma forma de usuaacuterios sem conhecimento

teacutecnico armazenarem e extraiacuterem grandes quantidades de informaccedilotildees de um banco de dados

Esse artigo foi o grande impulso para a evoluccedilatildeo dos bancos de dados a partir do artigo de ldquoTedrdquo

Codd que os cientistas aprofundaram a ideia de criar o modelo de banco de dados relacional

BANCO DE DADOS RELACIONAL

Apesar de ter sido o marco dos bancos de dados relacionais o artigo de Codd natildeo foimuito explorado no iniacutecio Soacute no final da deacutecada de 70 que foi desenvolvido um sistema baseado

nas ideias do cientista o ldquoSistema Rrdquo Junto com esse sistema foi criado a linguagem de consulta

estruturada (SQL ndash Structured Query Language) que se tornou a linguagem padratildeo para bancos

de dados relacionais Embora tenha contribuiacutedo para a evoluccedilatildeo dos bancos de dados

relacionais o ldquoSystem Rrdquo natildeo foi muito bem sucedido comercialmente mas os sistemas de banco

de dados seguintes foram baseados nele

Nos anos 80 surgiram outros bancos de dados a Oracle apresentou o Oracle 2 e a IBMo SQLDS (que se tornou DB2) ambos sistemas comerciais de bancos de dados Na sequencia

vieram SQL Server MySQL DBase III Paradox etchellip

BANCOS DE DADOS HOJE

Atualmente existem vaacuterios modelos de bancos de dados tais como orientado a objetos

orientado a documentos etc Mas o mais comum ainda eacute o banco de dados relacional A decisatildeo

entre qual modelo de banco de dados utilizarem baseia-se no tipo de dados que vocecirc pretende

armazenar Por exemplo se vocecirc for armazenar uma grande quantidade de dados em um modelo

pequeno (imagine um banco de dados para o twitter) eacute mais indicado utilizar um banco de dados

orientado a documentos a um banco de dados relacional Muitas questotildees envolvem essa

decisatildeo mas natildeo eacute uma questatildeo de superioridade entre uma ou outra tecnologia todas tecircm proacutes

e contras e satildeo mais indicadas ou natildeo para cada problema

Para fixar

Faccedila um breve resumo sobre o surgimos dos bancos de dados

______________________________________________________________________________

______________________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2065

20

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

Dados amp Informaccedilatildeo

A informaccedilatildeo eacute encarada atualmente como um dos recursos mais importantes de uma

organizaccedilatildeo contribuindo decisivamente para a sua maior ou menor competitividade De fato

com o aumento da concorrecircncia tornou-se vital melhorar as capacidades de decisatildeo a todos osniacuteveis

Hoje mais que nunca a tomada de decisatildeo nas organizaccedilotildees eacute um processo complexo

dada a qualidade de informaccedilatildeo em jogo a sua complexidade e a frequecircncia com que se altera

No entanto para que possa ser utilizada com um apoio eficaz agrave tomada de decisatildeo a informaccedilatildeo

soacute tecircm valor se verificarem simultaneamente algumas condiccedilotildees

ATUALIDADE ndash O valor da informaccedilatildeo dependeraacute em grande parte da sua atualidade

Dado o dinamismo verificado em todos os setores da sociedade em geral e do ambiente

empresarial em particular o periacuteodo de validade da informaccedilatildeo eacute cada vez mais curto Torna-se

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2165

21

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

necessaacuterio dispor de fontes de informaccedilatildeo que acompanhem continuamente essas modificaccedilotildees

Soacute com base em informaccedilatildeo atualizada se podem tomar decisotildees acertadas

CORRECcedilAtildeO ndash Natildeo basta que a informaccedilatildeo seja atual eacute tambeacutem necessaacuterio que na

medida do possiacutevel seja rigorosa Soacute com informaccedilatildeo correta se pode decidir com confianccedila

RELEVAcircNCIA ndash Dado o grande de volume de informaccedilatildeo envolvida o processo de tomada

de decisatildeo ao contraacuterio de ser facilitado pode ser dificultado pelo excesso de informaccedilatildeo A

informaccedilatildeo deve ser devidamente filtrada de tal forma que apenas aquela com relevacircncia para

cada situaccedilatildeo seja considerada

DISPONIBILIDADE ndash Ainda que a informaccedilatildeo verifique os trecircs requisitos anteriores a sua

utilidades poderaacute ser posta em causa se natildeo puder ser disponibilizada de forma imediata no

momento em que eacute solicitada As decisotildees muito ponderadas com o longo periacuteodo de gestaccedilatildeo

satildeo cada vez mais situaccedilotildees do passado Hoje dadas as caracteriacutesticas do meio envolvente oprocesso de tomada de decisatildeo tem que ser quase instantacircneo Para isso a informaccedilatildeo tem que

ser disponibilizada rapidamente caso contraacuterio deixa de ser uacutetil

LEGIBILIDADE - Esta condiccedilatildeo apesar de apresentada em uacuteltimo lugar natildeo eacute por isso

menos importante A informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada

De fato de nada vale que a informaccedilatildeo seja atual precisa relevante e disponibilizada em

tempo oportuno se natildeo puder ser entendida A forma como eacute disponibilizada tem tambeacutem grande

importacircncia informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada A forma como eacutedisponibilizada tem tambeacutem grande importacircncia

Quanto aos requisitos de atualidade e correccedilatildeo da informaccedilatildeo para que esta possa ser

correta e atual os dados de onde eacute derivada tecircm forccedilosamente que ser precisos e atualizados

Quanto aos requisitos de relevacircncia disponibilidade e legibilidade da informaccedilatildeo estes tecircm mais

a ver com os meios utilizados para o processamento dos dados

Como eacute que a informaccedilatildeo eacute organizada

A organizaccedilatildeo da informaccedilatildeo eacute efetuada de acordo com criteacuterios distintos como

Hierarquia dos seus componentes

O tipo de assunto a que se refere

Forma de armazenamento

Quanto agrave HIERARQUIA DOS COMPONENTES DA INFORMACcedilAtildeO esta eacute organizada em

Caracteres Campos Registros Ficheiros Caracteres - podem ser numeacutericos alfabeacuteticos ou

sinais de pontuaccedilatildeo Campos - satildeo conjuntos de caracteres que identificam um componente de

um registo Registos - satildeo agrupamentos de campos descritivos de uma realidade Ficheiros - satildeo

conjuntos de registos cuja informaccedilatildeo eacute estruturalmente analoacutegica

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2265

22

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Quanto AO TIPO DE ASSUNTO a que se refere agrave informaccedilatildeo

Esta pode ser como que etiquetada de modo a tornar faacutecil a sua procura e a evitar perdas

de tempo

Quando a informaccedilatildeo estaacute armazenada em ficheiros estes indicam o seu tipo atraveacutes de

uma extensatildeo ao nome do ficheiro

Algumas das extensotildees mais comuns satildeo

- COM ficheiro de comandos - BACK backup ou coacutepias de seguranccedila- EXE executaacuteveis - SYS ficheiros de sistema

- BAT processamento batch - XLS folha de caacutelculo provenientes do Excel

- TXT texto no formato ASCII - PPT apresentaccedilotildees provenientes do PowerPoint

- PAS programas em Linguagem Pascal - MBD base de dados provenientes do Access

- C programas em Linguagem C - DOC documentos provenientes de um processador de

texto

Quanto Agrave FORMA DE ARMAZENAMENTO da informaccedilatildeoRelativamente ao armazenamento por exemplo no disco riacutegido do computador a

informaccedilatildeo eacute organizada em diretorias cujo nome revela o tipo de ficheiros que aiacute se encontram

podendo cada diretorias conter diversas subdiretorias

Organizaccedilatildeo dos dados num Computador

Os dados que fornecemos a um computador para processar podem ser de trecircs tipos

quantitativos classificativos referenciais

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2365

23

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Dados quantitativos - satildeo os que exprimem quantidades e por isso normalmente servem

de base para caacutelculos aritmeacuteticos Exemplo a ficha escolar as notas do periacuteodo as faltas o total

das faltas

bull Dados classificativos - satildeo os que descrevem ou especificam os elementos envolvidos e

quantificados Normalmente servem de complemento aos dados quantitativos identificando

pessoas objetos situaccedilotildees etc Natildeo servem portanto para elementos de caacutelculo Exemplo a

ficha escolar o nome do aluno o nome da disciplina o nome do professor

bull Dados referenciais - satildeo dados que permitem controlar e referenciar os elementos

tratados Exemplo a ficha escolar o ano letivo o nuacutemero do aluno a turma

Para fixar

Escreva de forma resumida como podemos organizar os dados

_________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

Tipos de Operaccedilotildees realizadas sobre os dados

O tipo de operaccedilotildees efetuadas depende dos objetivos do processamento e igualmente dostipos de dados nele envolvidos pois o computador pode processar dados numeacutericos ou natildeo

numeacutericos Assim temos como operaccedilotildees possiacuteveis num processamento

bull Operaccedilotildees aritmeacuteticas - satildeo efetuadas apenas sobre dados numeacutericos e satildeo

basicamente constituiacutedas por somas subtraccedilotildees multiplicaccedilotildees divisotildees e outras similares

bull Operaccedilotildees loacutegicas - satildeo efetuadas sobre dados numeacutericos ou natildeo numeacutericos Estas

operaccedilotildees satildeo tambeacutem por vezes designadas por operaccedilotildees de comparaccedilatildeo

bull Operaccedilotildees de movimentaccedilatildeo interna - satildeo efetuadas sobre qualquer tipo de dados e

consistem na coacutepia e mudanccedila de localizaccedilatildeo interna dos dados na memoacuteria do computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2465

24

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Operaccedilatildeo de InputOutput - satildeo as operaccedilotildees que envolvem os oacutergatildeos de entrada e

saiacuteda permitindo a comunicaccedilatildeo entre o operador e a maacutequina

Funccedilotildees do processamento de dados

Considera-se como processamento de dados o conjunto de todas as operaccedilotildees efetuadas desde

a entrada dos dados ateacute agrave saiacuteda da informaccedilatildeo Todas estas operaccedilotildees de vaacuterios tipos satildeo

normalmente associadas a seis funccedilotildees do processamento de dados input ordenaccedilatildeo

processamento armazenamento output e controle

bull Input - fase de seleccedilatildeo e aquisiccedilatildeo dos dados pelo computador

bull Ordenaccedilatildeo - esta eacute uma funccedilatildeo auxiliar O seu objetivo eacute dispor os dados de uma forma

organizada (ordenada) de modo a facilitar o seu tratamento Se os dados se mantiverem

ordenados segundo um determinado criteacuterio preacute-definido a sua pesquisa eacute mais faacutecil o que faz

aumentar a velocidade do processamento

bull Processamento - considera-se processamento ao conjunto de todas as operaccedilotildees

efetuadas internamente pelo computador na manipulaccedilatildeo dos dados

bull Armazenamento - esta eacute uma funccedilatildeo muito importante que permite posteriormente

analisar as etapas e os resultados do processamento

bull Output - eacute a obtenccedilatildeo de resultados sob a forma de informaccedilatildeo significativa para as

pessoas a quem se destina

bull Controle - a sua finalidade eacute detectar corrigir e eliminar possiacuteveis erros ou afastamentosem relaccedilatildeo aos objetivos inicialmente traccedilados

Utilidade de um banco de dados

Um banco de dados permite pocircr dados agrave disposiccedilatildeo de usuaacuterios para uma consulta uma

introduccedilatildeo ou uma atualizaccedilatildeo assegurando-se dos direitos atribuiacutedos a estes uacuteltimos Isso eacute

ainda mais uacutetil quando os dados informaacuteticos satildeo cada vez mais numerosos

Um banco de dados pode ser local quer dizer utilizaacutevel em uma maacutequina por um usuaacuterio

ou repartida quer dizer que as informaccedilotildees satildeo armazenadas em maacutequinas distantes eacessiacuteveis por rede A vantagem essencial da utilizaccedilatildeo dos bancos de dados eacute a possibilidade

de poder ser acessada por vaacuterios usuaacuterios simultaneamente

A gestatildeo dos bancos de dados

A fim de poder controlar os dados bem como os usuaacuterios a necessidade de um sistema de

gestatildeo fez-se sentir rapidamente A gestatildeo do banco de dados faz-se graccedilas a um sistema

chamado SGBD (sistema de gestatildeo de bancos de dados) ou em inglecircs DBMS (Database

managment system) O SGBD eacute um conjunto de serviccedilos (aplicaccedilotildees software) que permitem

gerenciar os bancos de dados quer dizer

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2565

25

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Permitir o acesso aos dados de maneira simples

Autorizar um acesso agraves informaccedilotildees a muacuteltiplos usuaacuterios

Manipular os dados presentes no banco de dados (inserccedilatildeo supressatildeo modificaccedilatildeo)

O SGBD pode decompor-se em trecircs subsistemas

O sistema de gestatildeo de arquivos permite o armazenamento das informaccedilotildees num suporte

fiacutesico

O SGBD interno gerencia a emissatildeo das informaccedilotildees

O SGBD externo representa a interface com o usuaacuterio

Bancos de dados satildeo conjuntos de dados com uma estrutura regular que organizam

informaccedilatildeo Um banco de dados normalmente agrupa informaccedilotildees utilizadas para um mesmo fim

O modelo de dados mais adotado hoje em dia eacute o modelo relacional onde as estruturas

tecircm a forma de tabelas compostas por linhas e colunas

Resumindo um banco de dados eacute uma coleccedilatildeo de dados relacionados Entende-se por

dado toda a informaccedilatildeo que pode ser armazenada e que apresenta algum significado impliacutecito

dentro do contexto ao qual ele se aplica Por exemplo num sistema bancaacuterio uma pessoa eacuteidentificada pelo seu cpf(cliente) Em um sistema escolar a pessoa eacute identificada pelo seu nuacutemero

de matriacutecula(aluno) Aleacutem disso os dados que seratildeo armazenados em cada situaccedilatildeo podem

diferir consideravelmente

Atividades

1) Onde utilizar um banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2665

26

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2) Como funciona um sistema gerenciador de banco de dados

3) Como funciona o modelo relacional

Modelo Relacional

O modelo relacional eacute uma teoria matemaacutetica desenvolvida por Edgar Frank Codd para

descrever como as bases de dados devem funcionar Embora esta teoria seja a base para o

software de bases de dados relacionais muito poucos sistemas de gestatildeo de bases de dados

seguem o modelo de forma restrita e todos tecircm funcionalidades que violam a teoria desta forma

variando a complexidade e o poder A discussatildeo se esses bancos de dados merecem ser

chamados de relacional ficou esgotada com tempo com a evoluccedilatildeo dos bancos existentes

De acordo com a arquitetura ANSI SPARC em trecircs niacuteveis os Bancos de dados

relacionais consistem de trecircs componentes

bull uma coleccedilatildeo de estruturas de dados formalmente chamadas de relaccedilotildees ou

informalmente tabelas compondo o niacutevel conceitual

bull uma coleccedilatildeo dos operadores a aacutelgebra e o caacutelculo relacionais que constituem a base da

linguagem SQL

bull uma coleccedilatildeo de restriccedilotildees da integridade definindo o conjunto consistente de estados de

base de dados e de alteraccedilotildees de estados As restriccedilotildees de integridade podem ser de quatro

tipos

bull domiacutenio (ou tipo de dados) bull atributo

bull restriccedilotildees de base de dados

De acordo com o Princiacutepio de Informaccedilatildeo toda informaccedilatildeo tem de ser representada como dados

qualquer tipo de atributo representa relaccedilotildees entre conjuntos de dados

Nos bancos de dados relacionais os relacionamentos entre as tabelas natildeo satildeo codificados

explicitamente na sua definiccedilatildeo Em vez disso se fazem implicitamente pela presenccedila de

atributos chave As bases de dados relacionais permitem aos utilizadores (incluindo

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2765

27

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

programadores) escreverem consultas (queries) reorganizando e utilizando os dados de forma

flexiacutevel e natildeo necessariamente antecipada pelos projetistas originais

Esta flexibilidade eacute especialmente importante em bases de dados que podem ser utilizadas

durante deacutecadas tornando as bases de dados relacionais muito populares no meio comercial

Um dos pontos fortes do modelo relacional de banco de dados eacute a possibilidade de

definiccedilatildeo de um conjunto de restriccedilotildees de integridade Estas definem os conjuntos de estados e

mudanccedilas de estado consistentes do banco de dados determinando os valores que podem e os

que natildeo podem ser armazenados

Aplicaccedilotildees de bancos de dados

Bancos de dados satildeo usados em muitas aplicaccedilotildees enquanto atravessando virtualmente a

gama inteira de software de computador Bancos de dados eacute o meacutetodo preferido de

armazenamento para aplicaccedilotildees multiusuaacuterias grandes onde a coordenaccedilatildeo entre muitosusuaacuterios eacute necessaacuteria Ateacute mesmo usuaacuterios individuais os acham convenientes entretanto e

muitos programas de correio eletrocircnico e os organizadores pessoais estatildeo baseados em

tecnologia de banco de dados standard

Aplicativo de Banco de Dados

Um aplicativo de banco de dados eacute um tipo de software exclusivo para gerenciar um banco

de dados Aplicativos de banco de dados abrangem uma vasta variedade de necessidades e

objetivos de pequenas ferramentas como uma agenda ateacute complexos sistemas empresariaispara desempenhar tarefas como a contabilidade

O termo Aplicativo de Banco de dados usualmente se refere a softwares que oferecem

uma interface para o banco de dados Exemplos de aplicativos de banco de dados satildeo Microsoft

Visual FoxPro Microsoft Access dBASE FileMaker (em certa medida) HyperCard MySQL

PostgreSQL Microsoft SQL Server e Oracle

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2865

28

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Capiacutetulo 3 - HARDWARE E SOFTWARE

O QUE Eacute O HARDWARE

No acircmbito da informaacutetica eacute dada a designaccedilatildeo de hardware a todos os componentes

fiacutesicos que fazem parte de um sistema informaacutetico incluiacutedo toda a parte fiacutesica de um computador

(nomeadamente os processadores motherbord disco riacutegido placas de som placas de viacutedeo

memoacuterias etc) e todos os perifeacutericos (tais como teclados mouse monitores impressoras

scanners modems entre outros)

Peccedilas de um computador

Se vocecirc usa um computador desktop jaacute deve saber que natildeo existe uma parte uacutenica

chamada computador Um computador eacute na verdade um sistema de muitas partes funcionando

em conjunto As partes fiacutesicas que vocecirc pode ver e tocar satildeo denominadas

coletivamente hardware (O software por outro lado se refere agraves instruccedilotildees ou programas que

dizem ao hardware o que fazer)

A ilustraccedilatildeo a seguir mostra os dispositivos de hardware mais comuns em um sistema de

computador desktop Seu sistema pode ter uma aparecircncia um pouco diferente mas

provavelmente possui a maioria destas peccedilas Um computador laptop possui peccedilas semelhantes

mas as combina em um uacutenico pacote do tamanho de um caderno

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2965

29

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Sistema de computador desktop

Unidade de sistema

A unidade de sistema (Gabinete) eacute o nuacutecleo de um sistema de computador Normalmente

eacute uma caixa retangular colocada sobre a mesa ou embaixo dela Dentro dessa caixa estatildeo os

componentes eletrocircnicos que processam as informaccedilotildees O mais importante desses

componentes eacute a CPU (unidade de processamento central) ou microprocessador que atua como

o ceacuterebro do computador Outro componente eacute a memoacuteria RAM que armazena

temporariamente informaccedilotildees utilizadas pela CPU enquanto o computador estaacute ligado As

informaccedilotildees gravadas na RAM satildeo apagadas quando o computador eacute desligado

Quase todas as outras partes do computador se conectam agrave unidade de sistema por meio

de cabos Os cabos satildeo conectados aportas (aberturas) especiacuteficas geralmente na parte traseira

da unidade de sistema O hardware que natildeo faz parte da unidade de sistema eacute

chamado dispositivo perifeacuterico ou simplesmente dispositivo

Unidade de sistema

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3065

30

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Armazenamento

O computador possui uma ou mais unidades de disco ou seja dispositivos que armazenam

informaccedilotildees em um disco de plaacutestico ou de metal O disco preserva as informaccedilotildees mesmo

quando o computador estaacute desligado

Unidade de disco riacutegido

A unidade de disco riacutegido do computador armazena informaccedilotildees em um disco riacutegido que eacute um

prato riacutegido ou pilha de pratos com uma superfiacutecie magneacutetica Como os discos riacutegidos podem

reter uma grande quantidade de informaccedilotildees normalmente eles funcionam como principal meio

de armazenamento do computador guardando praticamente todos os programas e arquivos Em

geral a unidade de disco riacutegido fica localizada dentro da unidade de sistema

Unidade de disco riacutegidoUnidades de CD e DVD

Hoje em dia quase todos os computadores vecircm equipados com uma unidade de CD ou DVD

geralmente localizada na frente da unidade de sistema As unidades de CD usam lasers para ler

(recuperar) dados de um CD Muitas delas tambeacutem podem gravar dados em CDs Se vocecirc tiver

uma unidade de disco gravaacutevel poderaacute armazenar coacutepias de seus arquivos em CDs vazios A

unidade de CD tambeacutem serve para tocar CDs de muacutesica no computador

CD

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3165

31

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

As unidades de DVD fazem o mesmo que as unidades de CD e tambeacutem lecircem DVDs Se vocecirc

tiver uma unidade de DVD poderaacute ver filmes no computador Muitas unidades de DVD podem

gravar dados em DVDs vazios

Dica

Se vocecirc tiver uma unidade de CD ou DVD gravaacutevel faccedila backup (copie) periodicamente de seus

arquivos importantes em CDs ou DVDs Dessa forma caso venha a ocorrer alguma falha no disco

riacutegido vocecirc natildeo perderaacute os dados

Unidade de disquete

As unidades de disquete armazenam informaccedilotildees em discos tambeacutem chamados discos

flexiacuteveis ou disquetes Comparado a CDs e DVDs os disquetes podem armazenar apenas uma

pequena quantidade de dados Eles tambeacutem recuperam informaccedilotildees de forma mais lenta e satildeo

mais vulneraacuteveis a danos Por esses motivos as unidades de disquete satildeo cada vez menosusadas embora ainda sejam incluiacutedas em alguns computadores

Disquete

Por que estes discos satildeo chamados de disquetes Apesar de a parte externa ser composta de

plaacutestico riacutegido isso eacute apenas a capa O interior do disco eacute feito de um material de vinil fino e

flexiacutevel

Mouse

Mouse eacute um pequeno dispositivo usado para apontar e selecionar itens na tela do computador

Embora existam mouses de vaacuterias formas o modelo mais comum se assemelha a um rato (como

diz o nome em inglecircs) Ele eacute pequeno e alongado sendo conectado agrave unidade de sistema por um

cabo comprido que faz lembrar uma cauda Alguns mouses mais novos satildeo sem fio

Mouse

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3265

32

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O mouse geralmente possui dois bototildees um botatildeo principal (normalmente o da esquerda) e um

botatildeo secundaacuterio Muitos mouses tambeacutem tecircm uma roda entre os dois bototildees que permite

percorrer as telas de informaccedilotildees

Ponteiros do mouse

Agrave medida que vocecirc move o mouse com a matildeo um ponteiro na tela se move na mesma direccedilatildeo

(A aparecircncia do ponteiro pode mudar dependendo da sua posiccedilatildeo na tela) Quando quiser

selecionar um item aponte para ele e clique no botatildeo principal ou seja pressione-o e solte-o

Apontar e clicar com o mouse eacute a principal maneira de interagir com o computador Para mais

informaccedilotildees consulte Usando o mouse

Teclado

A finalidade principal do teclado eacute digitar texto no computador Ele possui teclas para letras e

nuacutemeros exatamente como em uma maacutequina de escrever A diferenccedila estaacute nas teclas especiais

As teclas de funccedilatildeo localizadas na linha superior executam funccedilotildees diferentes dependendo

de onde satildeo usadas

O teclado numeacuterico localizado agrave direita na maioria dos teclados permite inserir nuacutemeros

rapidamente

As teclas de navegaccedilatildeo como as teclas de seta permitem mover sua posiccedilatildeo dentro de

documentos ou paacuteginas da Web

Teclado

Vocecirc tambeacutem pode usar o teclado para executar muitas das mesmas tarefas que executa com

um mouse Para mais informaccedilotildees consulte Usando o teclado

Monitor

O monitor exibe informaccedilotildees em forma visual usando texto e elementos graacuteficos A parte do

monitor que exibe as informaccedilotildees eacute chamada tela Como a tela de uma televisatildeo a tela de um

computador pode mostrar imagens paradas ou em movimento

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3365

33

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Existem dois tipos baacutesicos de monitores CRT (tubo de raios catoacutedicos) e LCD (viacutedeo de cristal

liacutequido) Ambos produzem imagens niacutetidas mas os monitores LCD levam vantagem por serem

mais finos e mais leves

Monitor LCD (agrave esquerda) monitor CRT (agrave direita)

Impressora

Uma impressora transfere dados de um computador para o papel Vocecirc natildeo precisa de

impressora para usar o computador mas se tiver uma poderaacute imprimir emails cartotildees convites

anuacutencios e outros materiais Muitas pessoas tambeacutem preferem imprimir suas fotos em casa

Os dois principais tipos de impressora satildeo a jato de tinta e a laser As impressoras a jato de tinta

satildeo as mais populares para uso domeacutestico Elas podem imprimir em preto e branco ou em cores

e produzem fotos de alta qualidade quando usadas com papel especial As impressoras a laser

satildeo mais raacutepidas e mais adequadas para uso intenso

Impressora a jato de tinta (agrave esquerda) impressora a laser (agrave direita)

Alto-falantes

Os alto-falantes satildeo usados para tocar som Eles podem vir embutidos na unidade de sistema ou

ser conectados com cabos Satildeo eles que permitem ouvir muacutesica e efeitos de som no computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3465

34

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Alto-falantes do computador

Modem

Para conectar o computador agrave Internet vocecirc precisa de um modem um dispositivo que envia e

recebe informaccedilotildees do computador por linha telefocircnica ou cabo de alta velocidade Agraves vezes os

modems vecircm embutidos na unidade de sistema mas os de alta velocidade normalmente satildeo

componentes separados

Modem a cabo

O QUE Eacute O SOFTWARE

O Software eacute uma aplicaccedilatildeo ou programa do computador escrita numa determinadalinguagem interpretaacutevel por uma determinada maacutequina (o processador de um computador ou

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3565

35

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

outro equipamento) e que permite executar determinadas tarefas para as quais o software foi

projetado Estes programas satildeo compostos por uma sequecircncia de instruccedilotildees (os comandos) e de

declaraccedilotildees de dados as quais satildeo armazenaacuteveis num meio digital

Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por um

computador com o objetivo de executar tarefas especiacuteficas Tambeacutem pode ser definido como

os programas que comandam o funcionamento de um computador

Em um computador o software eacute classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer

instruccedilotildees para o hardware O hardware eacute toda a parte fiacutesica que constitui o computador por

exemplo a CPU a memoacuteria e os dispositivos de entrada e saiacuteda O software eacute constituiacutedo por

todos os programas que existem para um referido sistema quer sejam produzidos pelo proacuteprio

utente ou pelo fabricante do computador

O termo inglecircs software foi usado pela primeira vez em 1958 em um artigo escrito pelo cientistaamericano John Wilder Tukey Foi tambeacutem ele o responsaacutevel por introduzir o termo bit para

designar diacutegito binaacuterio

Os softwares podem ser classificados como

SOFTWARE DE SISTEMA

Geralmente dividido em SISTEMAS OPERACIONAIS e PROGRAMAS UTILITAacuteRIOS Para

comeccedilar os Sist Operacionais satildeo de grande importacircncia pois eles nos datildeo a opccedilatildeo de dizer ao

computador o que ele deve fazer Dois exemplos bastante conhecidos do nosso puacuteblico satildeoo Mac o Windows e o Linux Os Programas utilitaacuterios geralmente satildeo softwares de menor porte

com funccedilotildees mais especificas tipo Verificaccedilatildeo de Disco Coacutepias de Seguranccedila entre outros

SOFTWARE APLICATIVO

Neste tipo de software se enquadram todos aqueles programas que satildeo utilizados na execuccedilatildeo

de tarefas especiacuteficas Posso citar vaacuterios exemplos mas os mais comuns satildeo os processadores

de texto como o Word que servem para trabalhar com os mais diversos tipos de textos emitir

etiquetas e fazer formulaacuterios as planilhas eletrocircnicas como o Excel satildeo poderosas ferramentas

de caacutelculos que facilitam tanto aquele trabalho aacuterduo de matemaacutetica fazer graacuteficos com real

representaccedilatildeo dos dados eacute uma coisa muito boa pra quem precisa e por uacuteltimo o que muitos

usam mas natildeo sabem o nome ao certo que satildeo os Browsers ou Navegadores softwares usados

para navegar na Web dentre eles os mais conhecidos atualmente satildeo Windows Internet

Explorer Firefox Google Chrome Opera e Safaacuteri

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3665

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3765

37

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

hoje eles satildeo bastante usados em situaccedilotildees de treinamentos de pessoas para enfrentar casos no

seu dia-a-dia

SOFTWARE DE JOGOS

Geralmente satildeo softwares relacionados a entretenimento para proporcionar lazer e diversatildeo

Dispotildeem de muitos recursos interativos e existem de todos os tipos desde estrateacutegias ateacute

simulaccedilotildees reais de muitas coisas como corridas (Need for Speed) ateacute mesmo de vida como o

Second Life

SOFTWARES ABERTOS

Satildeo aqueles que permitem que o usuaacuterio produza com liberdade e criatividade se classificam

nessa categoria aqueles softwares de apresentaccedilotildees bancos de dados e vaacuterios outros

Para fixar

Descreva uma definiccedilatildeo para os tipos de softwares

Software de Sistema_____________________________________________________________

Software Aplicativo ______________________________________________________________

Software de Linguagem __________________________________________________________

Software abertos _______________________________________________________________

Capiacutetulo 4 - Conceitos Baacutesicos de Banco de Dados

Segundo Korth um banco de dados ldquoeacute uma coleccedilatildeo de dados inter -relacionados

representando informaccedilotildees sobre um domiacutenio especiacuteficordquo ou seja sempre que for possiacutevel

agrupar informaccedilotildees que se relacionam e tratam de um mesmo assunto posso dizer que tenho

um banco de dados

Podemos exemplificar situaccedilotildees claacutessicas como uma lista telefocircnica um cataacutelogo de CDs ou um

sistema de controle de RH de uma empresa

Jaacute um sistema de gerenciamento de banco de dados (SGBD) eacute um software que possui

recursos capazes de manipular as informaccedilotildees do banco de dados e interagir com o usuaacuterio

Exemplos de SGBDs satildeo Oracle SQL Server DB2 PostgreSQL MySQL o proacuteprio Access ouParadox entre outros

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3865

38

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Por uacuteltimo temos que conceituar um sistema de banco de dados como o conjunto de quatro

componentes baacutesicos dados hardware software e usuaacuterios Date conceituou que ldquosistema de

bancos de dados pode ser considerado como uma sala de arquivos eletrocircnicardquo A Figura 1 ilustra

os componentes de um sistema de banco de dados

Componentes de um sistema de banco de dados

Os objetivos de um sistema de banco de dados satildeo o de isolar o usuaacuterio dos detalhes

internos do banco de dados (promover a abstraccedilatildeo de dados) e promover a independecircncia dos

dados em relaccedilatildeo agraves aplicaccedilotildees ou seja tornar independente da aplicaccedilatildeo a estrateacutegia de

acesso e a forma de armazenamento

Abstraccedilatildeo de dados

O sistema de banco de dados deve garantir uma visatildeo totalmente abstrata do banco de

dados para o usuaacuterio ou seja para o usuaacuterio do banco de dados pouco importa qual unidade de

armazenamento estaacute sendo usada para guardar seus dados contanto que os mesmos estejam

disponiacuteveis no momento necessaacuterio

Esta abstraccedilatildeo se daacute em trecircs niacuteveis (Figura 2) Niacutevel de visatildeo do usuaacuterio as partes do banco de dados que o usuaacuterio tem acesso de

acordo com a necessidade individual de cada usuaacuterio ou grupo de usuaacuterios

Niacutevel conceitual define quais os dados que estatildeo armazenados e qual o relacionamento

entre eles

Niacutevel fiacutesico eacute o niacutevel mais baixo de abstraccedilatildeo em que define efetivamente de que maneira

os dados estatildeo armazenados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3965

39

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 2 Niacuteveis de abstraccedilatildeo

Projeto de banco de dados

Todo bom sistema de banco de dados deve apresentar um projeto que visa a organizaccedilatildeo das

informaccedilotildees e utilizaccedilatildeo de teacutecnicas para que o futuro sistema obtenha boa performance e

tambeacutem facilite infinitamente as manutenccedilotildees que venham a acontecer

O projeto de banco de dados se daacute em duas fases

Modelagem conceitual Projeto loacutegico

Estas duas etapas se referem a um sistema de banco de dados ainda natildeo implementado ou seja

que ainda natildeo exista um novo projeto Para os casos em que o banco de dados jaacute exista mas eacute

um sistema legado por exemplo ou um sistema muito antigo sem documentaccedilatildeo o processo de

projeto de banco de dados se daraacute atraveacutes da utilizaccedilatildeo de uma teacutecnica chamada de Engenharia

Reversa que seraacute visto em outra oportunidade

Modelo conceitual

Eacute a descriccedilatildeo do BD de maneira independente ao SGBD ou seja define quais os dados

que apareceratildeo no BD mas sem se importar com a implementaccedilatildeo que se daraacute ao BD Desta

forma haacute uma abstraccedilatildeo em niacutevel de SGBD

Uma das teacutecnicas mais utilizadas dentre os profissionais da aacuterea eacute a abordagem entidade-

relacionamento (ER) onde o modelo eacute representado graficamente atraveacutes do diagrama entidade-

relacionamento (DER) (Figura 3)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 18: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1865

18

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Metadados_______________________________________________________________

_________________________________________________________________________

Banco de

dados___________________________________________________________________

_________________________________________________________________________

A histoacuteria dos bancos de dados

Hoje os bancos de dados satildeo essenciais para muitas empresas e estatildeo no coraccedilatildeo de

muitos sistemas computacionais Ter acesso raacutepido agraves informaccedilotildees eacute muito importante para a

correta tomada de decisotildees em um negoacutecio Se vocecirc pretende trabalhar com desenvolvimento de

softwares com certeza precisaraacute trabalhar com bancos de dados em algum momento Conhecer

a histoacuteria dos bancos de dados e como eles evoluiacuteram eacute muito importante para entender como os

bancos de dados mais comuns satildeo organizados Entatildeo como aconteceu a evoluccedilatildeo dos bancos

de dados

Antigamente as empresas armazenavam dados em fichas de papel que eram organizadas

em arquivos fiacutesicos atraveacutes de pastas Extrair informaccedilotildees e manter esses arquivos organizados

era uma tarefa muito custosa Aleacutem disso o acesso agrave informaccedilatildeo dependia da localizaccedilatildeo

geograacutefica dos arquivos Enfim esses arquivos fiacutesicos evoluiacuteram para arquivos digitais No iniacutecio

cada entidade (clientes funcionaacuterios produtos etc) era um arquivo de dados que eram

acompanhados de um ldquosoftware simplesrdquo para manipular os dados do arquivo esses softwares

permitiam realizar operaccedilotildees de cadastro alteraccedilatildeo exclusatildeo e consulta nos arquivos digitais De

fato melhorou bastante principalmente a tarefa de consulta de informaccedilotildees poreacutem os arquivos

digitais eram ainda uma versatildeo melhorada dos arquivos fiacutesicos

Mas as entidades precisavam relacionar-se por exemplo um produto eacute fornecido por

um fornecedor e com os arquivos digitais relacionaacute-las natildeo era uma tarefa muito trivial os

ldquosoftwares simplesrdquo para manipular os arquivos digitais comeccedilaram a ficar ldquocomplexosrdquo para

permitir os relacionamentos entre entidades Entatildeo na deacutecada de 60 a empresa IBM investiu

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1965

19

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

fortemente em pesquisas para solucionar estes problemas dos bancos de dados digitais

primitivos Vaacuterios modelos de bancos de dados surgiram nesta eacutepoca dentre eles os modelos

hieraacuterquicos e rede

Em junho de 1970 o pesquisador Edgar Frank ldquoTedrdquo Codd da IBM mudou a histoacuteria dos

bancos de dados apresentando o modelo relacional no artigo intitulado ldquoA Relational Model of

Data for Large Shared Data Banksrdquo (Um modelo relacional de dados para grandes bancos de

dados compartilhados) onde o autor apresentou uma forma de usuaacuterios sem conhecimento

teacutecnico armazenarem e extraiacuterem grandes quantidades de informaccedilotildees de um banco de dados

Esse artigo foi o grande impulso para a evoluccedilatildeo dos bancos de dados a partir do artigo de ldquoTedrdquo

Codd que os cientistas aprofundaram a ideia de criar o modelo de banco de dados relacional

BANCO DE DADOS RELACIONAL

Apesar de ter sido o marco dos bancos de dados relacionais o artigo de Codd natildeo foimuito explorado no iniacutecio Soacute no final da deacutecada de 70 que foi desenvolvido um sistema baseado

nas ideias do cientista o ldquoSistema Rrdquo Junto com esse sistema foi criado a linguagem de consulta

estruturada (SQL ndash Structured Query Language) que se tornou a linguagem padratildeo para bancos

de dados relacionais Embora tenha contribuiacutedo para a evoluccedilatildeo dos bancos de dados

relacionais o ldquoSystem Rrdquo natildeo foi muito bem sucedido comercialmente mas os sistemas de banco

de dados seguintes foram baseados nele

Nos anos 80 surgiram outros bancos de dados a Oracle apresentou o Oracle 2 e a IBMo SQLDS (que se tornou DB2) ambos sistemas comerciais de bancos de dados Na sequencia

vieram SQL Server MySQL DBase III Paradox etchellip

BANCOS DE DADOS HOJE

Atualmente existem vaacuterios modelos de bancos de dados tais como orientado a objetos

orientado a documentos etc Mas o mais comum ainda eacute o banco de dados relacional A decisatildeo

entre qual modelo de banco de dados utilizarem baseia-se no tipo de dados que vocecirc pretende

armazenar Por exemplo se vocecirc for armazenar uma grande quantidade de dados em um modelo

pequeno (imagine um banco de dados para o twitter) eacute mais indicado utilizar um banco de dados

orientado a documentos a um banco de dados relacional Muitas questotildees envolvem essa

decisatildeo mas natildeo eacute uma questatildeo de superioridade entre uma ou outra tecnologia todas tecircm proacutes

e contras e satildeo mais indicadas ou natildeo para cada problema

Para fixar

Faccedila um breve resumo sobre o surgimos dos bancos de dados

______________________________________________________________________________

______________________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2065

20

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

Dados amp Informaccedilatildeo

A informaccedilatildeo eacute encarada atualmente como um dos recursos mais importantes de uma

organizaccedilatildeo contribuindo decisivamente para a sua maior ou menor competitividade De fato

com o aumento da concorrecircncia tornou-se vital melhorar as capacidades de decisatildeo a todos osniacuteveis

Hoje mais que nunca a tomada de decisatildeo nas organizaccedilotildees eacute um processo complexo

dada a qualidade de informaccedilatildeo em jogo a sua complexidade e a frequecircncia com que se altera

No entanto para que possa ser utilizada com um apoio eficaz agrave tomada de decisatildeo a informaccedilatildeo

soacute tecircm valor se verificarem simultaneamente algumas condiccedilotildees

ATUALIDADE ndash O valor da informaccedilatildeo dependeraacute em grande parte da sua atualidade

Dado o dinamismo verificado em todos os setores da sociedade em geral e do ambiente

empresarial em particular o periacuteodo de validade da informaccedilatildeo eacute cada vez mais curto Torna-se

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2165

21

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

necessaacuterio dispor de fontes de informaccedilatildeo que acompanhem continuamente essas modificaccedilotildees

Soacute com base em informaccedilatildeo atualizada se podem tomar decisotildees acertadas

CORRECcedilAtildeO ndash Natildeo basta que a informaccedilatildeo seja atual eacute tambeacutem necessaacuterio que na

medida do possiacutevel seja rigorosa Soacute com informaccedilatildeo correta se pode decidir com confianccedila

RELEVAcircNCIA ndash Dado o grande de volume de informaccedilatildeo envolvida o processo de tomada

de decisatildeo ao contraacuterio de ser facilitado pode ser dificultado pelo excesso de informaccedilatildeo A

informaccedilatildeo deve ser devidamente filtrada de tal forma que apenas aquela com relevacircncia para

cada situaccedilatildeo seja considerada

DISPONIBILIDADE ndash Ainda que a informaccedilatildeo verifique os trecircs requisitos anteriores a sua

utilidades poderaacute ser posta em causa se natildeo puder ser disponibilizada de forma imediata no

momento em que eacute solicitada As decisotildees muito ponderadas com o longo periacuteodo de gestaccedilatildeo

satildeo cada vez mais situaccedilotildees do passado Hoje dadas as caracteriacutesticas do meio envolvente oprocesso de tomada de decisatildeo tem que ser quase instantacircneo Para isso a informaccedilatildeo tem que

ser disponibilizada rapidamente caso contraacuterio deixa de ser uacutetil

LEGIBILIDADE - Esta condiccedilatildeo apesar de apresentada em uacuteltimo lugar natildeo eacute por isso

menos importante A informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada

De fato de nada vale que a informaccedilatildeo seja atual precisa relevante e disponibilizada em

tempo oportuno se natildeo puder ser entendida A forma como eacute disponibilizada tem tambeacutem grande

importacircncia informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada A forma como eacutedisponibilizada tem tambeacutem grande importacircncia

Quanto aos requisitos de atualidade e correccedilatildeo da informaccedilatildeo para que esta possa ser

correta e atual os dados de onde eacute derivada tecircm forccedilosamente que ser precisos e atualizados

Quanto aos requisitos de relevacircncia disponibilidade e legibilidade da informaccedilatildeo estes tecircm mais

a ver com os meios utilizados para o processamento dos dados

Como eacute que a informaccedilatildeo eacute organizada

A organizaccedilatildeo da informaccedilatildeo eacute efetuada de acordo com criteacuterios distintos como

Hierarquia dos seus componentes

O tipo de assunto a que se refere

Forma de armazenamento

Quanto agrave HIERARQUIA DOS COMPONENTES DA INFORMACcedilAtildeO esta eacute organizada em

Caracteres Campos Registros Ficheiros Caracteres - podem ser numeacutericos alfabeacuteticos ou

sinais de pontuaccedilatildeo Campos - satildeo conjuntos de caracteres que identificam um componente de

um registo Registos - satildeo agrupamentos de campos descritivos de uma realidade Ficheiros - satildeo

conjuntos de registos cuja informaccedilatildeo eacute estruturalmente analoacutegica

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2265

22

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Quanto AO TIPO DE ASSUNTO a que se refere agrave informaccedilatildeo

Esta pode ser como que etiquetada de modo a tornar faacutecil a sua procura e a evitar perdas

de tempo

Quando a informaccedilatildeo estaacute armazenada em ficheiros estes indicam o seu tipo atraveacutes de

uma extensatildeo ao nome do ficheiro

Algumas das extensotildees mais comuns satildeo

- COM ficheiro de comandos - BACK backup ou coacutepias de seguranccedila- EXE executaacuteveis - SYS ficheiros de sistema

- BAT processamento batch - XLS folha de caacutelculo provenientes do Excel

- TXT texto no formato ASCII - PPT apresentaccedilotildees provenientes do PowerPoint

- PAS programas em Linguagem Pascal - MBD base de dados provenientes do Access

- C programas em Linguagem C - DOC documentos provenientes de um processador de

texto

Quanto Agrave FORMA DE ARMAZENAMENTO da informaccedilatildeoRelativamente ao armazenamento por exemplo no disco riacutegido do computador a

informaccedilatildeo eacute organizada em diretorias cujo nome revela o tipo de ficheiros que aiacute se encontram

podendo cada diretorias conter diversas subdiretorias

Organizaccedilatildeo dos dados num Computador

Os dados que fornecemos a um computador para processar podem ser de trecircs tipos

quantitativos classificativos referenciais

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2365

23

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Dados quantitativos - satildeo os que exprimem quantidades e por isso normalmente servem

de base para caacutelculos aritmeacuteticos Exemplo a ficha escolar as notas do periacuteodo as faltas o total

das faltas

bull Dados classificativos - satildeo os que descrevem ou especificam os elementos envolvidos e

quantificados Normalmente servem de complemento aos dados quantitativos identificando

pessoas objetos situaccedilotildees etc Natildeo servem portanto para elementos de caacutelculo Exemplo a

ficha escolar o nome do aluno o nome da disciplina o nome do professor

bull Dados referenciais - satildeo dados que permitem controlar e referenciar os elementos

tratados Exemplo a ficha escolar o ano letivo o nuacutemero do aluno a turma

Para fixar

Escreva de forma resumida como podemos organizar os dados

_________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

Tipos de Operaccedilotildees realizadas sobre os dados

O tipo de operaccedilotildees efetuadas depende dos objetivos do processamento e igualmente dostipos de dados nele envolvidos pois o computador pode processar dados numeacutericos ou natildeo

numeacutericos Assim temos como operaccedilotildees possiacuteveis num processamento

bull Operaccedilotildees aritmeacuteticas - satildeo efetuadas apenas sobre dados numeacutericos e satildeo

basicamente constituiacutedas por somas subtraccedilotildees multiplicaccedilotildees divisotildees e outras similares

bull Operaccedilotildees loacutegicas - satildeo efetuadas sobre dados numeacutericos ou natildeo numeacutericos Estas

operaccedilotildees satildeo tambeacutem por vezes designadas por operaccedilotildees de comparaccedilatildeo

bull Operaccedilotildees de movimentaccedilatildeo interna - satildeo efetuadas sobre qualquer tipo de dados e

consistem na coacutepia e mudanccedila de localizaccedilatildeo interna dos dados na memoacuteria do computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2465

24

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Operaccedilatildeo de InputOutput - satildeo as operaccedilotildees que envolvem os oacutergatildeos de entrada e

saiacuteda permitindo a comunicaccedilatildeo entre o operador e a maacutequina

Funccedilotildees do processamento de dados

Considera-se como processamento de dados o conjunto de todas as operaccedilotildees efetuadas desde

a entrada dos dados ateacute agrave saiacuteda da informaccedilatildeo Todas estas operaccedilotildees de vaacuterios tipos satildeo

normalmente associadas a seis funccedilotildees do processamento de dados input ordenaccedilatildeo

processamento armazenamento output e controle

bull Input - fase de seleccedilatildeo e aquisiccedilatildeo dos dados pelo computador

bull Ordenaccedilatildeo - esta eacute uma funccedilatildeo auxiliar O seu objetivo eacute dispor os dados de uma forma

organizada (ordenada) de modo a facilitar o seu tratamento Se os dados se mantiverem

ordenados segundo um determinado criteacuterio preacute-definido a sua pesquisa eacute mais faacutecil o que faz

aumentar a velocidade do processamento

bull Processamento - considera-se processamento ao conjunto de todas as operaccedilotildees

efetuadas internamente pelo computador na manipulaccedilatildeo dos dados

bull Armazenamento - esta eacute uma funccedilatildeo muito importante que permite posteriormente

analisar as etapas e os resultados do processamento

bull Output - eacute a obtenccedilatildeo de resultados sob a forma de informaccedilatildeo significativa para as

pessoas a quem se destina

bull Controle - a sua finalidade eacute detectar corrigir e eliminar possiacuteveis erros ou afastamentosem relaccedilatildeo aos objetivos inicialmente traccedilados

Utilidade de um banco de dados

Um banco de dados permite pocircr dados agrave disposiccedilatildeo de usuaacuterios para uma consulta uma

introduccedilatildeo ou uma atualizaccedilatildeo assegurando-se dos direitos atribuiacutedos a estes uacuteltimos Isso eacute

ainda mais uacutetil quando os dados informaacuteticos satildeo cada vez mais numerosos

Um banco de dados pode ser local quer dizer utilizaacutevel em uma maacutequina por um usuaacuterio

ou repartida quer dizer que as informaccedilotildees satildeo armazenadas em maacutequinas distantes eacessiacuteveis por rede A vantagem essencial da utilizaccedilatildeo dos bancos de dados eacute a possibilidade

de poder ser acessada por vaacuterios usuaacuterios simultaneamente

A gestatildeo dos bancos de dados

A fim de poder controlar os dados bem como os usuaacuterios a necessidade de um sistema de

gestatildeo fez-se sentir rapidamente A gestatildeo do banco de dados faz-se graccedilas a um sistema

chamado SGBD (sistema de gestatildeo de bancos de dados) ou em inglecircs DBMS (Database

managment system) O SGBD eacute um conjunto de serviccedilos (aplicaccedilotildees software) que permitem

gerenciar os bancos de dados quer dizer

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2565

25

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Permitir o acesso aos dados de maneira simples

Autorizar um acesso agraves informaccedilotildees a muacuteltiplos usuaacuterios

Manipular os dados presentes no banco de dados (inserccedilatildeo supressatildeo modificaccedilatildeo)

O SGBD pode decompor-se em trecircs subsistemas

O sistema de gestatildeo de arquivos permite o armazenamento das informaccedilotildees num suporte

fiacutesico

O SGBD interno gerencia a emissatildeo das informaccedilotildees

O SGBD externo representa a interface com o usuaacuterio

Bancos de dados satildeo conjuntos de dados com uma estrutura regular que organizam

informaccedilatildeo Um banco de dados normalmente agrupa informaccedilotildees utilizadas para um mesmo fim

O modelo de dados mais adotado hoje em dia eacute o modelo relacional onde as estruturas

tecircm a forma de tabelas compostas por linhas e colunas

Resumindo um banco de dados eacute uma coleccedilatildeo de dados relacionados Entende-se por

dado toda a informaccedilatildeo que pode ser armazenada e que apresenta algum significado impliacutecito

dentro do contexto ao qual ele se aplica Por exemplo num sistema bancaacuterio uma pessoa eacuteidentificada pelo seu cpf(cliente) Em um sistema escolar a pessoa eacute identificada pelo seu nuacutemero

de matriacutecula(aluno) Aleacutem disso os dados que seratildeo armazenados em cada situaccedilatildeo podem

diferir consideravelmente

Atividades

1) Onde utilizar um banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2665

26

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2) Como funciona um sistema gerenciador de banco de dados

3) Como funciona o modelo relacional

Modelo Relacional

O modelo relacional eacute uma teoria matemaacutetica desenvolvida por Edgar Frank Codd para

descrever como as bases de dados devem funcionar Embora esta teoria seja a base para o

software de bases de dados relacionais muito poucos sistemas de gestatildeo de bases de dados

seguem o modelo de forma restrita e todos tecircm funcionalidades que violam a teoria desta forma

variando a complexidade e o poder A discussatildeo se esses bancos de dados merecem ser

chamados de relacional ficou esgotada com tempo com a evoluccedilatildeo dos bancos existentes

De acordo com a arquitetura ANSI SPARC em trecircs niacuteveis os Bancos de dados

relacionais consistem de trecircs componentes

bull uma coleccedilatildeo de estruturas de dados formalmente chamadas de relaccedilotildees ou

informalmente tabelas compondo o niacutevel conceitual

bull uma coleccedilatildeo dos operadores a aacutelgebra e o caacutelculo relacionais que constituem a base da

linguagem SQL

bull uma coleccedilatildeo de restriccedilotildees da integridade definindo o conjunto consistente de estados de

base de dados e de alteraccedilotildees de estados As restriccedilotildees de integridade podem ser de quatro

tipos

bull domiacutenio (ou tipo de dados) bull atributo

bull restriccedilotildees de base de dados

De acordo com o Princiacutepio de Informaccedilatildeo toda informaccedilatildeo tem de ser representada como dados

qualquer tipo de atributo representa relaccedilotildees entre conjuntos de dados

Nos bancos de dados relacionais os relacionamentos entre as tabelas natildeo satildeo codificados

explicitamente na sua definiccedilatildeo Em vez disso se fazem implicitamente pela presenccedila de

atributos chave As bases de dados relacionais permitem aos utilizadores (incluindo

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2765

27

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

programadores) escreverem consultas (queries) reorganizando e utilizando os dados de forma

flexiacutevel e natildeo necessariamente antecipada pelos projetistas originais

Esta flexibilidade eacute especialmente importante em bases de dados que podem ser utilizadas

durante deacutecadas tornando as bases de dados relacionais muito populares no meio comercial

Um dos pontos fortes do modelo relacional de banco de dados eacute a possibilidade de

definiccedilatildeo de um conjunto de restriccedilotildees de integridade Estas definem os conjuntos de estados e

mudanccedilas de estado consistentes do banco de dados determinando os valores que podem e os

que natildeo podem ser armazenados

Aplicaccedilotildees de bancos de dados

Bancos de dados satildeo usados em muitas aplicaccedilotildees enquanto atravessando virtualmente a

gama inteira de software de computador Bancos de dados eacute o meacutetodo preferido de

armazenamento para aplicaccedilotildees multiusuaacuterias grandes onde a coordenaccedilatildeo entre muitosusuaacuterios eacute necessaacuteria Ateacute mesmo usuaacuterios individuais os acham convenientes entretanto e

muitos programas de correio eletrocircnico e os organizadores pessoais estatildeo baseados em

tecnologia de banco de dados standard

Aplicativo de Banco de Dados

Um aplicativo de banco de dados eacute um tipo de software exclusivo para gerenciar um banco

de dados Aplicativos de banco de dados abrangem uma vasta variedade de necessidades e

objetivos de pequenas ferramentas como uma agenda ateacute complexos sistemas empresariaispara desempenhar tarefas como a contabilidade

O termo Aplicativo de Banco de dados usualmente se refere a softwares que oferecem

uma interface para o banco de dados Exemplos de aplicativos de banco de dados satildeo Microsoft

Visual FoxPro Microsoft Access dBASE FileMaker (em certa medida) HyperCard MySQL

PostgreSQL Microsoft SQL Server e Oracle

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2865

28

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Capiacutetulo 3 - HARDWARE E SOFTWARE

O QUE Eacute O HARDWARE

No acircmbito da informaacutetica eacute dada a designaccedilatildeo de hardware a todos os componentes

fiacutesicos que fazem parte de um sistema informaacutetico incluiacutedo toda a parte fiacutesica de um computador

(nomeadamente os processadores motherbord disco riacutegido placas de som placas de viacutedeo

memoacuterias etc) e todos os perifeacutericos (tais como teclados mouse monitores impressoras

scanners modems entre outros)

Peccedilas de um computador

Se vocecirc usa um computador desktop jaacute deve saber que natildeo existe uma parte uacutenica

chamada computador Um computador eacute na verdade um sistema de muitas partes funcionando

em conjunto As partes fiacutesicas que vocecirc pode ver e tocar satildeo denominadas

coletivamente hardware (O software por outro lado se refere agraves instruccedilotildees ou programas que

dizem ao hardware o que fazer)

A ilustraccedilatildeo a seguir mostra os dispositivos de hardware mais comuns em um sistema de

computador desktop Seu sistema pode ter uma aparecircncia um pouco diferente mas

provavelmente possui a maioria destas peccedilas Um computador laptop possui peccedilas semelhantes

mas as combina em um uacutenico pacote do tamanho de um caderno

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2965

29

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Sistema de computador desktop

Unidade de sistema

A unidade de sistema (Gabinete) eacute o nuacutecleo de um sistema de computador Normalmente

eacute uma caixa retangular colocada sobre a mesa ou embaixo dela Dentro dessa caixa estatildeo os

componentes eletrocircnicos que processam as informaccedilotildees O mais importante desses

componentes eacute a CPU (unidade de processamento central) ou microprocessador que atua como

o ceacuterebro do computador Outro componente eacute a memoacuteria RAM que armazena

temporariamente informaccedilotildees utilizadas pela CPU enquanto o computador estaacute ligado As

informaccedilotildees gravadas na RAM satildeo apagadas quando o computador eacute desligado

Quase todas as outras partes do computador se conectam agrave unidade de sistema por meio

de cabos Os cabos satildeo conectados aportas (aberturas) especiacuteficas geralmente na parte traseira

da unidade de sistema O hardware que natildeo faz parte da unidade de sistema eacute

chamado dispositivo perifeacuterico ou simplesmente dispositivo

Unidade de sistema

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3065

30

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Armazenamento

O computador possui uma ou mais unidades de disco ou seja dispositivos que armazenam

informaccedilotildees em um disco de plaacutestico ou de metal O disco preserva as informaccedilotildees mesmo

quando o computador estaacute desligado

Unidade de disco riacutegido

A unidade de disco riacutegido do computador armazena informaccedilotildees em um disco riacutegido que eacute um

prato riacutegido ou pilha de pratos com uma superfiacutecie magneacutetica Como os discos riacutegidos podem

reter uma grande quantidade de informaccedilotildees normalmente eles funcionam como principal meio

de armazenamento do computador guardando praticamente todos os programas e arquivos Em

geral a unidade de disco riacutegido fica localizada dentro da unidade de sistema

Unidade de disco riacutegidoUnidades de CD e DVD

Hoje em dia quase todos os computadores vecircm equipados com uma unidade de CD ou DVD

geralmente localizada na frente da unidade de sistema As unidades de CD usam lasers para ler

(recuperar) dados de um CD Muitas delas tambeacutem podem gravar dados em CDs Se vocecirc tiver

uma unidade de disco gravaacutevel poderaacute armazenar coacutepias de seus arquivos em CDs vazios A

unidade de CD tambeacutem serve para tocar CDs de muacutesica no computador

CD

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3165

31

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

As unidades de DVD fazem o mesmo que as unidades de CD e tambeacutem lecircem DVDs Se vocecirc

tiver uma unidade de DVD poderaacute ver filmes no computador Muitas unidades de DVD podem

gravar dados em DVDs vazios

Dica

Se vocecirc tiver uma unidade de CD ou DVD gravaacutevel faccedila backup (copie) periodicamente de seus

arquivos importantes em CDs ou DVDs Dessa forma caso venha a ocorrer alguma falha no disco

riacutegido vocecirc natildeo perderaacute os dados

Unidade de disquete

As unidades de disquete armazenam informaccedilotildees em discos tambeacutem chamados discos

flexiacuteveis ou disquetes Comparado a CDs e DVDs os disquetes podem armazenar apenas uma

pequena quantidade de dados Eles tambeacutem recuperam informaccedilotildees de forma mais lenta e satildeo

mais vulneraacuteveis a danos Por esses motivos as unidades de disquete satildeo cada vez menosusadas embora ainda sejam incluiacutedas em alguns computadores

Disquete

Por que estes discos satildeo chamados de disquetes Apesar de a parte externa ser composta de

plaacutestico riacutegido isso eacute apenas a capa O interior do disco eacute feito de um material de vinil fino e

flexiacutevel

Mouse

Mouse eacute um pequeno dispositivo usado para apontar e selecionar itens na tela do computador

Embora existam mouses de vaacuterias formas o modelo mais comum se assemelha a um rato (como

diz o nome em inglecircs) Ele eacute pequeno e alongado sendo conectado agrave unidade de sistema por um

cabo comprido que faz lembrar uma cauda Alguns mouses mais novos satildeo sem fio

Mouse

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3265

32

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O mouse geralmente possui dois bototildees um botatildeo principal (normalmente o da esquerda) e um

botatildeo secundaacuterio Muitos mouses tambeacutem tecircm uma roda entre os dois bototildees que permite

percorrer as telas de informaccedilotildees

Ponteiros do mouse

Agrave medida que vocecirc move o mouse com a matildeo um ponteiro na tela se move na mesma direccedilatildeo

(A aparecircncia do ponteiro pode mudar dependendo da sua posiccedilatildeo na tela) Quando quiser

selecionar um item aponte para ele e clique no botatildeo principal ou seja pressione-o e solte-o

Apontar e clicar com o mouse eacute a principal maneira de interagir com o computador Para mais

informaccedilotildees consulte Usando o mouse

Teclado

A finalidade principal do teclado eacute digitar texto no computador Ele possui teclas para letras e

nuacutemeros exatamente como em uma maacutequina de escrever A diferenccedila estaacute nas teclas especiais

As teclas de funccedilatildeo localizadas na linha superior executam funccedilotildees diferentes dependendo

de onde satildeo usadas

O teclado numeacuterico localizado agrave direita na maioria dos teclados permite inserir nuacutemeros

rapidamente

As teclas de navegaccedilatildeo como as teclas de seta permitem mover sua posiccedilatildeo dentro de

documentos ou paacuteginas da Web

Teclado

Vocecirc tambeacutem pode usar o teclado para executar muitas das mesmas tarefas que executa com

um mouse Para mais informaccedilotildees consulte Usando o teclado

Monitor

O monitor exibe informaccedilotildees em forma visual usando texto e elementos graacuteficos A parte do

monitor que exibe as informaccedilotildees eacute chamada tela Como a tela de uma televisatildeo a tela de um

computador pode mostrar imagens paradas ou em movimento

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3365

33

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Existem dois tipos baacutesicos de monitores CRT (tubo de raios catoacutedicos) e LCD (viacutedeo de cristal

liacutequido) Ambos produzem imagens niacutetidas mas os monitores LCD levam vantagem por serem

mais finos e mais leves

Monitor LCD (agrave esquerda) monitor CRT (agrave direita)

Impressora

Uma impressora transfere dados de um computador para o papel Vocecirc natildeo precisa de

impressora para usar o computador mas se tiver uma poderaacute imprimir emails cartotildees convites

anuacutencios e outros materiais Muitas pessoas tambeacutem preferem imprimir suas fotos em casa

Os dois principais tipos de impressora satildeo a jato de tinta e a laser As impressoras a jato de tinta

satildeo as mais populares para uso domeacutestico Elas podem imprimir em preto e branco ou em cores

e produzem fotos de alta qualidade quando usadas com papel especial As impressoras a laser

satildeo mais raacutepidas e mais adequadas para uso intenso

Impressora a jato de tinta (agrave esquerda) impressora a laser (agrave direita)

Alto-falantes

Os alto-falantes satildeo usados para tocar som Eles podem vir embutidos na unidade de sistema ou

ser conectados com cabos Satildeo eles que permitem ouvir muacutesica e efeitos de som no computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3465

34

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Alto-falantes do computador

Modem

Para conectar o computador agrave Internet vocecirc precisa de um modem um dispositivo que envia e

recebe informaccedilotildees do computador por linha telefocircnica ou cabo de alta velocidade Agraves vezes os

modems vecircm embutidos na unidade de sistema mas os de alta velocidade normalmente satildeo

componentes separados

Modem a cabo

O QUE Eacute O SOFTWARE

O Software eacute uma aplicaccedilatildeo ou programa do computador escrita numa determinadalinguagem interpretaacutevel por uma determinada maacutequina (o processador de um computador ou

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3565

35

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

outro equipamento) e que permite executar determinadas tarefas para as quais o software foi

projetado Estes programas satildeo compostos por uma sequecircncia de instruccedilotildees (os comandos) e de

declaraccedilotildees de dados as quais satildeo armazenaacuteveis num meio digital

Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por um

computador com o objetivo de executar tarefas especiacuteficas Tambeacutem pode ser definido como

os programas que comandam o funcionamento de um computador

Em um computador o software eacute classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer

instruccedilotildees para o hardware O hardware eacute toda a parte fiacutesica que constitui o computador por

exemplo a CPU a memoacuteria e os dispositivos de entrada e saiacuteda O software eacute constituiacutedo por

todos os programas que existem para um referido sistema quer sejam produzidos pelo proacuteprio

utente ou pelo fabricante do computador

O termo inglecircs software foi usado pela primeira vez em 1958 em um artigo escrito pelo cientistaamericano John Wilder Tukey Foi tambeacutem ele o responsaacutevel por introduzir o termo bit para

designar diacutegito binaacuterio

Os softwares podem ser classificados como

SOFTWARE DE SISTEMA

Geralmente dividido em SISTEMAS OPERACIONAIS e PROGRAMAS UTILITAacuteRIOS Para

comeccedilar os Sist Operacionais satildeo de grande importacircncia pois eles nos datildeo a opccedilatildeo de dizer ao

computador o que ele deve fazer Dois exemplos bastante conhecidos do nosso puacuteblico satildeoo Mac o Windows e o Linux Os Programas utilitaacuterios geralmente satildeo softwares de menor porte

com funccedilotildees mais especificas tipo Verificaccedilatildeo de Disco Coacutepias de Seguranccedila entre outros

SOFTWARE APLICATIVO

Neste tipo de software se enquadram todos aqueles programas que satildeo utilizados na execuccedilatildeo

de tarefas especiacuteficas Posso citar vaacuterios exemplos mas os mais comuns satildeo os processadores

de texto como o Word que servem para trabalhar com os mais diversos tipos de textos emitir

etiquetas e fazer formulaacuterios as planilhas eletrocircnicas como o Excel satildeo poderosas ferramentas

de caacutelculos que facilitam tanto aquele trabalho aacuterduo de matemaacutetica fazer graacuteficos com real

representaccedilatildeo dos dados eacute uma coisa muito boa pra quem precisa e por uacuteltimo o que muitos

usam mas natildeo sabem o nome ao certo que satildeo os Browsers ou Navegadores softwares usados

para navegar na Web dentre eles os mais conhecidos atualmente satildeo Windows Internet

Explorer Firefox Google Chrome Opera e Safaacuteri

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3665

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3765

37

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

hoje eles satildeo bastante usados em situaccedilotildees de treinamentos de pessoas para enfrentar casos no

seu dia-a-dia

SOFTWARE DE JOGOS

Geralmente satildeo softwares relacionados a entretenimento para proporcionar lazer e diversatildeo

Dispotildeem de muitos recursos interativos e existem de todos os tipos desde estrateacutegias ateacute

simulaccedilotildees reais de muitas coisas como corridas (Need for Speed) ateacute mesmo de vida como o

Second Life

SOFTWARES ABERTOS

Satildeo aqueles que permitem que o usuaacuterio produza com liberdade e criatividade se classificam

nessa categoria aqueles softwares de apresentaccedilotildees bancos de dados e vaacuterios outros

Para fixar

Descreva uma definiccedilatildeo para os tipos de softwares

Software de Sistema_____________________________________________________________

Software Aplicativo ______________________________________________________________

Software de Linguagem __________________________________________________________

Software abertos _______________________________________________________________

Capiacutetulo 4 - Conceitos Baacutesicos de Banco de Dados

Segundo Korth um banco de dados ldquoeacute uma coleccedilatildeo de dados inter -relacionados

representando informaccedilotildees sobre um domiacutenio especiacuteficordquo ou seja sempre que for possiacutevel

agrupar informaccedilotildees que se relacionam e tratam de um mesmo assunto posso dizer que tenho

um banco de dados

Podemos exemplificar situaccedilotildees claacutessicas como uma lista telefocircnica um cataacutelogo de CDs ou um

sistema de controle de RH de uma empresa

Jaacute um sistema de gerenciamento de banco de dados (SGBD) eacute um software que possui

recursos capazes de manipular as informaccedilotildees do banco de dados e interagir com o usuaacuterio

Exemplos de SGBDs satildeo Oracle SQL Server DB2 PostgreSQL MySQL o proacuteprio Access ouParadox entre outros

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3865

38

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Por uacuteltimo temos que conceituar um sistema de banco de dados como o conjunto de quatro

componentes baacutesicos dados hardware software e usuaacuterios Date conceituou que ldquosistema de

bancos de dados pode ser considerado como uma sala de arquivos eletrocircnicardquo A Figura 1 ilustra

os componentes de um sistema de banco de dados

Componentes de um sistema de banco de dados

Os objetivos de um sistema de banco de dados satildeo o de isolar o usuaacuterio dos detalhes

internos do banco de dados (promover a abstraccedilatildeo de dados) e promover a independecircncia dos

dados em relaccedilatildeo agraves aplicaccedilotildees ou seja tornar independente da aplicaccedilatildeo a estrateacutegia de

acesso e a forma de armazenamento

Abstraccedilatildeo de dados

O sistema de banco de dados deve garantir uma visatildeo totalmente abstrata do banco de

dados para o usuaacuterio ou seja para o usuaacuterio do banco de dados pouco importa qual unidade de

armazenamento estaacute sendo usada para guardar seus dados contanto que os mesmos estejam

disponiacuteveis no momento necessaacuterio

Esta abstraccedilatildeo se daacute em trecircs niacuteveis (Figura 2) Niacutevel de visatildeo do usuaacuterio as partes do banco de dados que o usuaacuterio tem acesso de

acordo com a necessidade individual de cada usuaacuterio ou grupo de usuaacuterios

Niacutevel conceitual define quais os dados que estatildeo armazenados e qual o relacionamento

entre eles

Niacutevel fiacutesico eacute o niacutevel mais baixo de abstraccedilatildeo em que define efetivamente de que maneira

os dados estatildeo armazenados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3965

39

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 2 Niacuteveis de abstraccedilatildeo

Projeto de banco de dados

Todo bom sistema de banco de dados deve apresentar um projeto que visa a organizaccedilatildeo das

informaccedilotildees e utilizaccedilatildeo de teacutecnicas para que o futuro sistema obtenha boa performance e

tambeacutem facilite infinitamente as manutenccedilotildees que venham a acontecer

O projeto de banco de dados se daacute em duas fases

Modelagem conceitual Projeto loacutegico

Estas duas etapas se referem a um sistema de banco de dados ainda natildeo implementado ou seja

que ainda natildeo exista um novo projeto Para os casos em que o banco de dados jaacute exista mas eacute

um sistema legado por exemplo ou um sistema muito antigo sem documentaccedilatildeo o processo de

projeto de banco de dados se daraacute atraveacutes da utilizaccedilatildeo de uma teacutecnica chamada de Engenharia

Reversa que seraacute visto em outra oportunidade

Modelo conceitual

Eacute a descriccedilatildeo do BD de maneira independente ao SGBD ou seja define quais os dados

que apareceratildeo no BD mas sem se importar com a implementaccedilatildeo que se daraacute ao BD Desta

forma haacute uma abstraccedilatildeo em niacutevel de SGBD

Uma das teacutecnicas mais utilizadas dentre os profissionais da aacuterea eacute a abordagem entidade-

relacionamento (ER) onde o modelo eacute representado graficamente atraveacutes do diagrama entidade-

relacionamento (DER) (Figura 3)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 19: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 1965

19

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

fortemente em pesquisas para solucionar estes problemas dos bancos de dados digitais

primitivos Vaacuterios modelos de bancos de dados surgiram nesta eacutepoca dentre eles os modelos

hieraacuterquicos e rede

Em junho de 1970 o pesquisador Edgar Frank ldquoTedrdquo Codd da IBM mudou a histoacuteria dos

bancos de dados apresentando o modelo relacional no artigo intitulado ldquoA Relational Model of

Data for Large Shared Data Banksrdquo (Um modelo relacional de dados para grandes bancos de

dados compartilhados) onde o autor apresentou uma forma de usuaacuterios sem conhecimento

teacutecnico armazenarem e extraiacuterem grandes quantidades de informaccedilotildees de um banco de dados

Esse artigo foi o grande impulso para a evoluccedilatildeo dos bancos de dados a partir do artigo de ldquoTedrdquo

Codd que os cientistas aprofundaram a ideia de criar o modelo de banco de dados relacional

BANCO DE DADOS RELACIONAL

Apesar de ter sido o marco dos bancos de dados relacionais o artigo de Codd natildeo foimuito explorado no iniacutecio Soacute no final da deacutecada de 70 que foi desenvolvido um sistema baseado

nas ideias do cientista o ldquoSistema Rrdquo Junto com esse sistema foi criado a linguagem de consulta

estruturada (SQL ndash Structured Query Language) que se tornou a linguagem padratildeo para bancos

de dados relacionais Embora tenha contribuiacutedo para a evoluccedilatildeo dos bancos de dados

relacionais o ldquoSystem Rrdquo natildeo foi muito bem sucedido comercialmente mas os sistemas de banco

de dados seguintes foram baseados nele

Nos anos 80 surgiram outros bancos de dados a Oracle apresentou o Oracle 2 e a IBMo SQLDS (que se tornou DB2) ambos sistemas comerciais de bancos de dados Na sequencia

vieram SQL Server MySQL DBase III Paradox etchellip

BANCOS DE DADOS HOJE

Atualmente existem vaacuterios modelos de bancos de dados tais como orientado a objetos

orientado a documentos etc Mas o mais comum ainda eacute o banco de dados relacional A decisatildeo

entre qual modelo de banco de dados utilizarem baseia-se no tipo de dados que vocecirc pretende

armazenar Por exemplo se vocecirc for armazenar uma grande quantidade de dados em um modelo

pequeno (imagine um banco de dados para o twitter) eacute mais indicado utilizar um banco de dados

orientado a documentos a um banco de dados relacional Muitas questotildees envolvem essa

decisatildeo mas natildeo eacute uma questatildeo de superioridade entre uma ou outra tecnologia todas tecircm proacutes

e contras e satildeo mais indicadas ou natildeo para cada problema

Para fixar

Faccedila um breve resumo sobre o surgimos dos bancos de dados

______________________________________________________________________________

______________________________________________________________________________

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2065

20

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

Dados amp Informaccedilatildeo

A informaccedilatildeo eacute encarada atualmente como um dos recursos mais importantes de uma

organizaccedilatildeo contribuindo decisivamente para a sua maior ou menor competitividade De fato

com o aumento da concorrecircncia tornou-se vital melhorar as capacidades de decisatildeo a todos osniacuteveis

Hoje mais que nunca a tomada de decisatildeo nas organizaccedilotildees eacute um processo complexo

dada a qualidade de informaccedilatildeo em jogo a sua complexidade e a frequecircncia com que se altera

No entanto para que possa ser utilizada com um apoio eficaz agrave tomada de decisatildeo a informaccedilatildeo

soacute tecircm valor se verificarem simultaneamente algumas condiccedilotildees

ATUALIDADE ndash O valor da informaccedilatildeo dependeraacute em grande parte da sua atualidade

Dado o dinamismo verificado em todos os setores da sociedade em geral e do ambiente

empresarial em particular o periacuteodo de validade da informaccedilatildeo eacute cada vez mais curto Torna-se

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2165

21

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

necessaacuterio dispor de fontes de informaccedilatildeo que acompanhem continuamente essas modificaccedilotildees

Soacute com base em informaccedilatildeo atualizada se podem tomar decisotildees acertadas

CORRECcedilAtildeO ndash Natildeo basta que a informaccedilatildeo seja atual eacute tambeacutem necessaacuterio que na

medida do possiacutevel seja rigorosa Soacute com informaccedilatildeo correta se pode decidir com confianccedila

RELEVAcircNCIA ndash Dado o grande de volume de informaccedilatildeo envolvida o processo de tomada

de decisatildeo ao contraacuterio de ser facilitado pode ser dificultado pelo excesso de informaccedilatildeo A

informaccedilatildeo deve ser devidamente filtrada de tal forma que apenas aquela com relevacircncia para

cada situaccedilatildeo seja considerada

DISPONIBILIDADE ndash Ainda que a informaccedilatildeo verifique os trecircs requisitos anteriores a sua

utilidades poderaacute ser posta em causa se natildeo puder ser disponibilizada de forma imediata no

momento em que eacute solicitada As decisotildees muito ponderadas com o longo periacuteodo de gestaccedilatildeo

satildeo cada vez mais situaccedilotildees do passado Hoje dadas as caracteriacutesticas do meio envolvente oprocesso de tomada de decisatildeo tem que ser quase instantacircneo Para isso a informaccedilatildeo tem que

ser disponibilizada rapidamente caso contraacuterio deixa de ser uacutetil

LEGIBILIDADE - Esta condiccedilatildeo apesar de apresentada em uacuteltimo lugar natildeo eacute por isso

menos importante A informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada

De fato de nada vale que a informaccedilatildeo seja atual precisa relevante e disponibilizada em

tempo oportuno se natildeo puder ser entendida A forma como eacute disponibilizada tem tambeacutem grande

importacircncia informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada A forma como eacutedisponibilizada tem tambeacutem grande importacircncia

Quanto aos requisitos de atualidade e correccedilatildeo da informaccedilatildeo para que esta possa ser

correta e atual os dados de onde eacute derivada tecircm forccedilosamente que ser precisos e atualizados

Quanto aos requisitos de relevacircncia disponibilidade e legibilidade da informaccedilatildeo estes tecircm mais

a ver com os meios utilizados para o processamento dos dados

Como eacute que a informaccedilatildeo eacute organizada

A organizaccedilatildeo da informaccedilatildeo eacute efetuada de acordo com criteacuterios distintos como

Hierarquia dos seus componentes

O tipo de assunto a que se refere

Forma de armazenamento

Quanto agrave HIERARQUIA DOS COMPONENTES DA INFORMACcedilAtildeO esta eacute organizada em

Caracteres Campos Registros Ficheiros Caracteres - podem ser numeacutericos alfabeacuteticos ou

sinais de pontuaccedilatildeo Campos - satildeo conjuntos de caracteres que identificam um componente de

um registo Registos - satildeo agrupamentos de campos descritivos de uma realidade Ficheiros - satildeo

conjuntos de registos cuja informaccedilatildeo eacute estruturalmente analoacutegica

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2265

22

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Quanto AO TIPO DE ASSUNTO a que se refere agrave informaccedilatildeo

Esta pode ser como que etiquetada de modo a tornar faacutecil a sua procura e a evitar perdas

de tempo

Quando a informaccedilatildeo estaacute armazenada em ficheiros estes indicam o seu tipo atraveacutes de

uma extensatildeo ao nome do ficheiro

Algumas das extensotildees mais comuns satildeo

- COM ficheiro de comandos - BACK backup ou coacutepias de seguranccedila- EXE executaacuteveis - SYS ficheiros de sistema

- BAT processamento batch - XLS folha de caacutelculo provenientes do Excel

- TXT texto no formato ASCII - PPT apresentaccedilotildees provenientes do PowerPoint

- PAS programas em Linguagem Pascal - MBD base de dados provenientes do Access

- C programas em Linguagem C - DOC documentos provenientes de um processador de

texto

Quanto Agrave FORMA DE ARMAZENAMENTO da informaccedilatildeoRelativamente ao armazenamento por exemplo no disco riacutegido do computador a

informaccedilatildeo eacute organizada em diretorias cujo nome revela o tipo de ficheiros que aiacute se encontram

podendo cada diretorias conter diversas subdiretorias

Organizaccedilatildeo dos dados num Computador

Os dados que fornecemos a um computador para processar podem ser de trecircs tipos

quantitativos classificativos referenciais

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2365

23

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Dados quantitativos - satildeo os que exprimem quantidades e por isso normalmente servem

de base para caacutelculos aritmeacuteticos Exemplo a ficha escolar as notas do periacuteodo as faltas o total

das faltas

bull Dados classificativos - satildeo os que descrevem ou especificam os elementos envolvidos e

quantificados Normalmente servem de complemento aos dados quantitativos identificando

pessoas objetos situaccedilotildees etc Natildeo servem portanto para elementos de caacutelculo Exemplo a

ficha escolar o nome do aluno o nome da disciplina o nome do professor

bull Dados referenciais - satildeo dados que permitem controlar e referenciar os elementos

tratados Exemplo a ficha escolar o ano letivo o nuacutemero do aluno a turma

Para fixar

Escreva de forma resumida como podemos organizar os dados

_________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

Tipos de Operaccedilotildees realizadas sobre os dados

O tipo de operaccedilotildees efetuadas depende dos objetivos do processamento e igualmente dostipos de dados nele envolvidos pois o computador pode processar dados numeacutericos ou natildeo

numeacutericos Assim temos como operaccedilotildees possiacuteveis num processamento

bull Operaccedilotildees aritmeacuteticas - satildeo efetuadas apenas sobre dados numeacutericos e satildeo

basicamente constituiacutedas por somas subtraccedilotildees multiplicaccedilotildees divisotildees e outras similares

bull Operaccedilotildees loacutegicas - satildeo efetuadas sobre dados numeacutericos ou natildeo numeacutericos Estas

operaccedilotildees satildeo tambeacutem por vezes designadas por operaccedilotildees de comparaccedilatildeo

bull Operaccedilotildees de movimentaccedilatildeo interna - satildeo efetuadas sobre qualquer tipo de dados e

consistem na coacutepia e mudanccedila de localizaccedilatildeo interna dos dados na memoacuteria do computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2465

24

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Operaccedilatildeo de InputOutput - satildeo as operaccedilotildees que envolvem os oacutergatildeos de entrada e

saiacuteda permitindo a comunicaccedilatildeo entre o operador e a maacutequina

Funccedilotildees do processamento de dados

Considera-se como processamento de dados o conjunto de todas as operaccedilotildees efetuadas desde

a entrada dos dados ateacute agrave saiacuteda da informaccedilatildeo Todas estas operaccedilotildees de vaacuterios tipos satildeo

normalmente associadas a seis funccedilotildees do processamento de dados input ordenaccedilatildeo

processamento armazenamento output e controle

bull Input - fase de seleccedilatildeo e aquisiccedilatildeo dos dados pelo computador

bull Ordenaccedilatildeo - esta eacute uma funccedilatildeo auxiliar O seu objetivo eacute dispor os dados de uma forma

organizada (ordenada) de modo a facilitar o seu tratamento Se os dados se mantiverem

ordenados segundo um determinado criteacuterio preacute-definido a sua pesquisa eacute mais faacutecil o que faz

aumentar a velocidade do processamento

bull Processamento - considera-se processamento ao conjunto de todas as operaccedilotildees

efetuadas internamente pelo computador na manipulaccedilatildeo dos dados

bull Armazenamento - esta eacute uma funccedilatildeo muito importante que permite posteriormente

analisar as etapas e os resultados do processamento

bull Output - eacute a obtenccedilatildeo de resultados sob a forma de informaccedilatildeo significativa para as

pessoas a quem se destina

bull Controle - a sua finalidade eacute detectar corrigir e eliminar possiacuteveis erros ou afastamentosem relaccedilatildeo aos objetivos inicialmente traccedilados

Utilidade de um banco de dados

Um banco de dados permite pocircr dados agrave disposiccedilatildeo de usuaacuterios para uma consulta uma

introduccedilatildeo ou uma atualizaccedilatildeo assegurando-se dos direitos atribuiacutedos a estes uacuteltimos Isso eacute

ainda mais uacutetil quando os dados informaacuteticos satildeo cada vez mais numerosos

Um banco de dados pode ser local quer dizer utilizaacutevel em uma maacutequina por um usuaacuterio

ou repartida quer dizer que as informaccedilotildees satildeo armazenadas em maacutequinas distantes eacessiacuteveis por rede A vantagem essencial da utilizaccedilatildeo dos bancos de dados eacute a possibilidade

de poder ser acessada por vaacuterios usuaacuterios simultaneamente

A gestatildeo dos bancos de dados

A fim de poder controlar os dados bem como os usuaacuterios a necessidade de um sistema de

gestatildeo fez-se sentir rapidamente A gestatildeo do banco de dados faz-se graccedilas a um sistema

chamado SGBD (sistema de gestatildeo de bancos de dados) ou em inglecircs DBMS (Database

managment system) O SGBD eacute um conjunto de serviccedilos (aplicaccedilotildees software) que permitem

gerenciar os bancos de dados quer dizer

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2565

25

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Permitir o acesso aos dados de maneira simples

Autorizar um acesso agraves informaccedilotildees a muacuteltiplos usuaacuterios

Manipular os dados presentes no banco de dados (inserccedilatildeo supressatildeo modificaccedilatildeo)

O SGBD pode decompor-se em trecircs subsistemas

O sistema de gestatildeo de arquivos permite o armazenamento das informaccedilotildees num suporte

fiacutesico

O SGBD interno gerencia a emissatildeo das informaccedilotildees

O SGBD externo representa a interface com o usuaacuterio

Bancos de dados satildeo conjuntos de dados com uma estrutura regular que organizam

informaccedilatildeo Um banco de dados normalmente agrupa informaccedilotildees utilizadas para um mesmo fim

O modelo de dados mais adotado hoje em dia eacute o modelo relacional onde as estruturas

tecircm a forma de tabelas compostas por linhas e colunas

Resumindo um banco de dados eacute uma coleccedilatildeo de dados relacionados Entende-se por

dado toda a informaccedilatildeo que pode ser armazenada e que apresenta algum significado impliacutecito

dentro do contexto ao qual ele se aplica Por exemplo num sistema bancaacuterio uma pessoa eacuteidentificada pelo seu cpf(cliente) Em um sistema escolar a pessoa eacute identificada pelo seu nuacutemero

de matriacutecula(aluno) Aleacutem disso os dados que seratildeo armazenados em cada situaccedilatildeo podem

diferir consideravelmente

Atividades

1) Onde utilizar um banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2665

26

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2) Como funciona um sistema gerenciador de banco de dados

3) Como funciona o modelo relacional

Modelo Relacional

O modelo relacional eacute uma teoria matemaacutetica desenvolvida por Edgar Frank Codd para

descrever como as bases de dados devem funcionar Embora esta teoria seja a base para o

software de bases de dados relacionais muito poucos sistemas de gestatildeo de bases de dados

seguem o modelo de forma restrita e todos tecircm funcionalidades que violam a teoria desta forma

variando a complexidade e o poder A discussatildeo se esses bancos de dados merecem ser

chamados de relacional ficou esgotada com tempo com a evoluccedilatildeo dos bancos existentes

De acordo com a arquitetura ANSI SPARC em trecircs niacuteveis os Bancos de dados

relacionais consistem de trecircs componentes

bull uma coleccedilatildeo de estruturas de dados formalmente chamadas de relaccedilotildees ou

informalmente tabelas compondo o niacutevel conceitual

bull uma coleccedilatildeo dos operadores a aacutelgebra e o caacutelculo relacionais que constituem a base da

linguagem SQL

bull uma coleccedilatildeo de restriccedilotildees da integridade definindo o conjunto consistente de estados de

base de dados e de alteraccedilotildees de estados As restriccedilotildees de integridade podem ser de quatro

tipos

bull domiacutenio (ou tipo de dados) bull atributo

bull restriccedilotildees de base de dados

De acordo com o Princiacutepio de Informaccedilatildeo toda informaccedilatildeo tem de ser representada como dados

qualquer tipo de atributo representa relaccedilotildees entre conjuntos de dados

Nos bancos de dados relacionais os relacionamentos entre as tabelas natildeo satildeo codificados

explicitamente na sua definiccedilatildeo Em vez disso se fazem implicitamente pela presenccedila de

atributos chave As bases de dados relacionais permitem aos utilizadores (incluindo

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2765

27

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

programadores) escreverem consultas (queries) reorganizando e utilizando os dados de forma

flexiacutevel e natildeo necessariamente antecipada pelos projetistas originais

Esta flexibilidade eacute especialmente importante em bases de dados que podem ser utilizadas

durante deacutecadas tornando as bases de dados relacionais muito populares no meio comercial

Um dos pontos fortes do modelo relacional de banco de dados eacute a possibilidade de

definiccedilatildeo de um conjunto de restriccedilotildees de integridade Estas definem os conjuntos de estados e

mudanccedilas de estado consistentes do banco de dados determinando os valores que podem e os

que natildeo podem ser armazenados

Aplicaccedilotildees de bancos de dados

Bancos de dados satildeo usados em muitas aplicaccedilotildees enquanto atravessando virtualmente a

gama inteira de software de computador Bancos de dados eacute o meacutetodo preferido de

armazenamento para aplicaccedilotildees multiusuaacuterias grandes onde a coordenaccedilatildeo entre muitosusuaacuterios eacute necessaacuteria Ateacute mesmo usuaacuterios individuais os acham convenientes entretanto e

muitos programas de correio eletrocircnico e os organizadores pessoais estatildeo baseados em

tecnologia de banco de dados standard

Aplicativo de Banco de Dados

Um aplicativo de banco de dados eacute um tipo de software exclusivo para gerenciar um banco

de dados Aplicativos de banco de dados abrangem uma vasta variedade de necessidades e

objetivos de pequenas ferramentas como uma agenda ateacute complexos sistemas empresariaispara desempenhar tarefas como a contabilidade

O termo Aplicativo de Banco de dados usualmente se refere a softwares que oferecem

uma interface para o banco de dados Exemplos de aplicativos de banco de dados satildeo Microsoft

Visual FoxPro Microsoft Access dBASE FileMaker (em certa medida) HyperCard MySQL

PostgreSQL Microsoft SQL Server e Oracle

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2865

28

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Capiacutetulo 3 - HARDWARE E SOFTWARE

O QUE Eacute O HARDWARE

No acircmbito da informaacutetica eacute dada a designaccedilatildeo de hardware a todos os componentes

fiacutesicos que fazem parte de um sistema informaacutetico incluiacutedo toda a parte fiacutesica de um computador

(nomeadamente os processadores motherbord disco riacutegido placas de som placas de viacutedeo

memoacuterias etc) e todos os perifeacutericos (tais como teclados mouse monitores impressoras

scanners modems entre outros)

Peccedilas de um computador

Se vocecirc usa um computador desktop jaacute deve saber que natildeo existe uma parte uacutenica

chamada computador Um computador eacute na verdade um sistema de muitas partes funcionando

em conjunto As partes fiacutesicas que vocecirc pode ver e tocar satildeo denominadas

coletivamente hardware (O software por outro lado se refere agraves instruccedilotildees ou programas que

dizem ao hardware o que fazer)

A ilustraccedilatildeo a seguir mostra os dispositivos de hardware mais comuns em um sistema de

computador desktop Seu sistema pode ter uma aparecircncia um pouco diferente mas

provavelmente possui a maioria destas peccedilas Um computador laptop possui peccedilas semelhantes

mas as combina em um uacutenico pacote do tamanho de um caderno

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2965

29

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Sistema de computador desktop

Unidade de sistema

A unidade de sistema (Gabinete) eacute o nuacutecleo de um sistema de computador Normalmente

eacute uma caixa retangular colocada sobre a mesa ou embaixo dela Dentro dessa caixa estatildeo os

componentes eletrocircnicos que processam as informaccedilotildees O mais importante desses

componentes eacute a CPU (unidade de processamento central) ou microprocessador que atua como

o ceacuterebro do computador Outro componente eacute a memoacuteria RAM que armazena

temporariamente informaccedilotildees utilizadas pela CPU enquanto o computador estaacute ligado As

informaccedilotildees gravadas na RAM satildeo apagadas quando o computador eacute desligado

Quase todas as outras partes do computador se conectam agrave unidade de sistema por meio

de cabos Os cabos satildeo conectados aportas (aberturas) especiacuteficas geralmente na parte traseira

da unidade de sistema O hardware que natildeo faz parte da unidade de sistema eacute

chamado dispositivo perifeacuterico ou simplesmente dispositivo

Unidade de sistema

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3065

30

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Armazenamento

O computador possui uma ou mais unidades de disco ou seja dispositivos que armazenam

informaccedilotildees em um disco de plaacutestico ou de metal O disco preserva as informaccedilotildees mesmo

quando o computador estaacute desligado

Unidade de disco riacutegido

A unidade de disco riacutegido do computador armazena informaccedilotildees em um disco riacutegido que eacute um

prato riacutegido ou pilha de pratos com uma superfiacutecie magneacutetica Como os discos riacutegidos podem

reter uma grande quantidade de informaccedilotildees normalmente eles funcionam como principal meio

de armazenamento do computador guardando praticamente todos os programas e arquivos Em

geral a unidade de disco riacutegido fica localizada dentro da unidade de sistema

Unidade de disco riacutegidoUnidades de CD e DVD

Hoje em dia quase todos os computadores vecircm equipados com uma unidade de CD ou DVD

geralmente localizada na frente da unidade de sistema As unidades de CD usam lasers para ler

(recuperar) dados de um CD Muitas delas tambeacutem podem gravar dados em CDs Se vocecirc tiver

uma unidade de disco gravaacutevel poderaacute armazenar coacutepias de seus arquivos em CDs vazios A

unidade de CD tambeacutem serve para tocar CDs de muacutesica no computador

CD

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3165

31

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

As unidades de DVD fazem o mesmo que as unidades de CD e tambeacutem lecircem DVDs Se vocecirc

tiver uma unidade de DVD poderaacute ver filmes no computador Muitas unidades de DVD podem

gravar dados em DVDs vazios

Dica

Se vocecirc tiver uma unidade de CD ou DVD gravaacutevel faccedila backup (copie) periodicamente de seus

arquivos importantes em CDs ou DVDs Dessa forma caso venha a ocorrer alguma falha no disco

riacutegido vocecirc natildeo perderaacute os dados

Unidade de disquete

As unidades de disquete armazenam informaccedilotildees em discos tambeacutem chamados discos

flexiacuteveis ou disquetes Comparado a CDs e DVDs os disquetes podem armazenar apenas uma

pequena quantidade de dados Eles tambeacutem recuperam informaccedilotildees de forma mais lenta e satildeo

mais vulneraacuteveis a danos Por esses motivos as unidades de disquete satildeo cada vez menosusadas embora ainda sejam incluiacutedas em alguns computadores

Disquete

Por que estes discos satildeo chamados de disquetes Apesar de a parte externa ser composta de

plaacutestico riacutegido isso eacute apenas a capa O interior do disco eacute feito de um material de vinil fino e

flexiacutevel

Mouse

Mouse eacute um pequeno dispositivo usado para apontar e selecionar itens na tela do computador

Embora existam mouses de vaacuterias formas o modelo mais comum se assemelha a um rato (como

diz o nome em inglecircs) Ele eacute pequeno e alongado sendo conectado agrave unidade de sistema por um

cabo comprido que faz lembrar uma cauda Alguns mouses mais novos satildeo sem fio

Mouse

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3265

32

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O mouse geralmente possui dois bototildees um botatildeo principal (normalmente o da esquerda) e um

botatildeo secundaacuterio Muitos mouses tambeacutem tecircm uma roda entre os dois bototildees que permite

percorrer as telas de informaccedilotildees

Ponteiros do mouse

Agrave medida que vocecirc move o mouse com a matildeo um ponteiro na tela se move na mesma direccedilatildeo

(A aparecircncia do ponteiro pode mudar dependendo da sua posiccedilatildeo na tela) Quando quiser

selecionar um item aponte para ele e clique no botatildeo principal ou seja pressione-o e solte-o

Apontar e clicar com o mouse eacute a principal maneira de interagir com o computador Para mais

informaccedilotildees consulte Usando o mouse

Teclado

A finalidade principal do teclado eacute digitar texto no computador Ele possui teclas para letras e

nuacutemeros exatamente como em uma maacutequina de escrever A diferenccedila estaacute nas teclas especiais

As teclas de funccedilatildeo localizadas na linha superior executam funccedilotildees diferentes dependendo

de onde satildeo usadas

O teclado numeacuterico localizado agrave direita na maioria dos teclados permite inserir nuacutemeros

rapidamente

As teclas de navegaccedilatildeo como as teclas de seta permitem mover sua posiccedilatildeo dentro de

documentos ou paacuteginas da Web

Teclado

Vocecirc tambeacutem pode usar o teclado para executar muitas das mesmas tarefas que executa com

um mouse Para mais informaccedilotildees consulte Usando o teclado

Monitor

O monitor exibe informaccedilotildees em forma visual usando texto e elementos graacuteficos A parte do

monitor que exibe as informaccedilotildees eacute chamada tela Como a tela de uma televisatildeo a tela de um

computador pode mostrar imagens paradas ou em movimento

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3365

33

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Existem dois tipos baacutesicos de monitores CRT (tubo de raios catoacutedicos) e LCD (viacutedeo de cristal

liacutequido) Ambos produzem imagens niacutetidas mas os monitores LCD levam vantagem por serem

mais finos e mais leves

Monitor LCD (agrave esquerda) monitor CRT (agrave direita)

Impressora

Uma impressora transfere dados de um computador para o papel Vocecirc natildeo precisa de

impressora para usar o computador mas se tiver uma poderaacute imprimir emails cartotildees convites

anuacutencios e outros materiais Muitas pessoas tambeacutem preferem imprimir suas fotos em casa

Os dois principais tipos de impressora satildeo a jato de tinta e a laser As impressoras a jato de tinta

satildeo as mais populares para uso domeacutestico Elas podem imprimir em preto e branco ou em cores

e produzem fotos de alta qualidade quando usadas com papel especial As impressoras a laser

satildeo mais raacutepidas e mais adequadas para uso intenso

Impressora a jato de tinta (agrave esquerda) impressora a laser (agrave direita)

Alto-falantes

Os alto-falantes satildeo usados para tocar som Eles podem vir embutidos na unidade de sistema ou

ser conectados com cabos Satildeo eles que permitem ouvir muacutesica e efeitos de som no computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3465

34

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Alto-falantes do computador

Modem

Para conectar o computador agrave Internet vocecirc precisa de um modem um dispositivo que envia e

recebe informaccedilotildees do computador por linha telefocircnica ou cabo de alta velocidade Agraves vezes os

modems vecircm embutidos na unidade de sistema mas os de alta velocidade normalmente satildeo

componentes separados

Modem a cabo

O QUE Eacute O SOFTWARE

O Software eacute uma aplicaccedilatildeo ou programa do computador escrita numa determinadalinguagem interpretaacutevel por uma determinada maacutequina (o processador de um computador ou

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3565

35

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

outro equipamento) e que permite executar determinadas tarefas para as quais o software foi

projetado Estes programas satildeo compostos por uma sequecircncia de instruccedilotildees (os comandos) e de

declaraccedilotildees de dados as quais satildeo armazenaacuteveis num meio digital

Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por um

computador com o objetivo de executar tarefas especiacuteficas Tambeacutem pode ser definido como

os programas que comandam o funcionamento de um computador

Em um computador o software eacute classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer

instruccedilotildees para o hardware O hardware eacute toda a parte fiacutesica que constitui o computador por

exemplo a CPU a memoacuteria e os dispositivos de entrada e saiacuteda O software eacute constituiacutedo por

todos os programas que existem para um referido sistema quer sejam produzidos pelo proacuteprio

utente ou pelo fabricante do computador

O termo inglecircs software foi usado pela primeira vez em 1958 em um artigo escrito pelo cientistaamericano John Wilder Tukey Foi tambeacutem ele o responsaacutevel por introduzir o termo bit para

designar diacutegito binaacuterio

Os softwares podem ser classificados como

SOFTWARE DE SISTEMA

Geralmente dividido em SISTEMAS OPERACIONAIS e PROGRAMAS UTILITAacuteRIOS Para

comeccedilar os Sist Operacionais satildeo de grande importacircncia pois eles nos datildeo a opccedilatildeo de dizer ao

computador o que ele deve fazer Dois exemplos bastante conhecidos do nosso puacuteblico satildeoo Mac o Windows e o Linux Os Programas utilitaacuterios geralmente satildeo softwares de menor porte

com funccedilotildees mais especificas tipo Verificaccedilatildeo de Disco Coacutepias de Seguranccedila entre outros

SOFTWARE APLICATIVO

Neste tipo de software se enquadram todos aqueles programas que satildeo utilizados na execuccedilatildeo

de tarefas especiacuteficas Posso citar vaacuterios exemplos mas os mais comuns satildeo os processadores

de texto como o Word que servem para trabalhar com os mais diversos tipos de textos emitir

etiquetas e fazer formulaacuterios as planilhas eletrocircnicas como o Excel satildeo poderosas ferramentas

de caacutelculos que facilitam tanto aquele trabalho aacuterduo de matemaacutetica fazer graacuteficos com real

representaccedilatildeo dos dados eacute uma coisa muito boa pra quem precisa e por uacuteltimo o que muitos

usam mas natildeo sabem o nome ao certo que satildeo os Browsers ou Navegadores softwares usados

para navegar na Web dentre eles os mais conhecidos atualmente satildeo Windows Internet

Explorer Firefox Google Chrome Opera e Safaacuteri

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3665

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3765

37

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

hoje eles satildeo bastante usados em situaccedilotildees de treinamentos de pessoas para enfrentar casos no

seu dia-a-dia

SOFTWARE DE JOGOS

Geralmente satildeo softwares relacionados a entretenimento para proporcionar lazer e diversatildeo

Dispotildeem de muitos recursos interativos e existem de todos os tipos desde estrateacutegias ateacute

simulaccedilotildees reais de muitas coisas como corridas (Need for Speed) ateacute mesmo de vida como o

Second Life

SOFTWARES ABERTOS

Satildeo aqueles que permitem que o usuaacuterio produza com liberdade e criatividade se classificam

nessa categoria aqueles softwares de apresentaccedilotildees bancos de dados e vaacuterios outros

Para fixar

Descreva uma definiccedilatildeo para os tipos de softwares

Software de Sistema_____________________________________________________________

Software Aplicativo ______________________________________________________________

Software de Linguagem __________________________________________________________

Software abertos _______________________________________________________________

Capiacutetulo 4 - Conceitos Baacutesicos de Banco de Dados

Segundo Korth um banco de dados ldquoeacute uma coleccedilatildeo de dados inter -relacionados

representando informaccedilotildees sobre um domiacutenio especiacuteficordquo ou seja sempre que for possiacutevel

agrupar informaccedilotildees que se relacionam e tratam de um mesmo assunto posso dizer que tenho

um banco de dados

Podemos exemplificar situaccedilotildees claacutessicas como uma lista telefocircnica um cataacutelogo de CDs ou um

sistema de controle de RH de uma empresa

Jaacute um sistema de gerenciamento de banco de dados (SGBD) eacute um software que possui

recursos capazes de manipular as informaccedilotildees do banco de dados e interagir com o usuaacuterio

Exemplos de SGBDs satildeo Oracle SQL Server DB2 PostgreSQL MySQL o proacuteprio Access ouParadox entre outros

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3865

38

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Por uacuteltimo temos que conceituar um sistema de banco de dados como o conjunto de quatro

componentes baacutesicos dados hardware software e usuaacuterios Date conceituou que ldquosistema de

bancos de dados pode ser considerado como uma sala de arquivos eletrocircnicardquo A Figura 1 ilustra

os componentes de um sistema de banco de dados

Componentes de um sistema de banco de dados

Os objetivos de um sistema de banco de dados satildeo o de isolar o usuaacuterio dos detalhes

internos do banco de dados (promover a abstraccedilatildeo de dados) e promover a independecircncia dos

dados em relaccedilatildeo agraves aplicaccedilotildees ou seja tornar independente da aplicaccedilatildeo a estrateacutegia de

acesso e a forma de armazenamento

Abstraccedilatildeo de dados

O sistema de banco de dados deve garantir uma visatildeo totalmente abstrata do banco de

dados para o usuaacuterio ou seja para o usuaacuterio do banco de dados pouco importa qual unidade de

armazenamento estaacute sendo usada para guardar seus dados contanto que os mesmos estejam

disponiacuteveis no momento necessaacuterio

Esta abstraccedilatildeo se daacute em trecircs niacuteveis (Figura 2) Niacutevel de visatildeo do usuaacuterio as partes do banco de dados que o usuaacuterio tem acesso de

acordo com a necessidade individual de cada usuaacuterio ou grupo de usuaacuterios

Niacutevel conceitual define quais os dados que estatildeo armazenados e qual o relacionamento

entre eles

Niacutevel fiacutesico eacute o niacutevel mais baixo de abstraccedilatildeo em que define efetivamente de que maneira

os dados estatildeo armazenados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3965

39

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 2 Niacuteveis de abstraccedilatildeo

Projeto de banco de dados

Todo bom sistema de banco de dados deve apresentar um projeto que visa a organizaccedilatildeo das

informaccedilotildees e utilizaccedilatildeo de teacutecnicas para que o futuro sistema obtenha boa performance e

tambeacutem facilite infinitamente as manutenccedilotildees que venham a acontecer

O projeto de banco de dados se daacute em duas fases

Modelagem conceitual Projeto loacutegico

Estas duas etapas se referem a um sistema de banco de dados ainda natildeo implementado ou seja

que ainda natildeo exista um novo projeto Para os casos em que o banco de dados jaacute exista mas eacute

um sistema legado por exemplo ou um sistema muito antigo sem documentaccedilatildeo o processo de

projeto de banco de dados se daraacute atraveacutes da utilizaccedilatildeo de uma teacutecnica chamada de Engenharia

Reversa que seraacute visto em outra oportunidade

Modelo conceitual

Eacute a descriccedilatildeo do BD de maneira independente ao SGBD ou seja define quais os dados

que apareceratildeo no BD mas sem se importar com a implementaccedilatildeo que se daraacute ao BD Desta

forma haacute uma abstraccedilatildeo em niacutevel de SGBD

Uma das teacutecnicas mais utilizadas dentre os profissionais da aacuterea eacute a abordagem entidade-

relacionamento (ER) onde o modelo eacute representado graficamente atraveacutes do diagrama entidade-

relacionamento (DER) (Figura 3)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 20: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2065

20

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

Dados amp Informaccedilatildeo

A informaccedilatildeo eacute encarada atualmente como um dos recursos mais importantes de uma

organizaccedilatildeo contribuindo decisivamente para a sua maior ou menor competitividade De fato

com o aumento da concorrecircncia tornou-se vital melhorar as capacidades de decisatildeo a todos osniacuteveis

Hoje mais que nunca a tomada de decisatildeo nas organizaccedilotildees eacute um processo complexo

dada a qualidade de informaccedilatildeo em jogo a sua complexidade e a frequecircncia com que se altera

No entanto para que possa ser utilizada com um apoio eficaz agrave tomada de decisatildeo a informaccedilatildeo

soacute tecircm valor se verificarem simultaneamente algumas condiccedilotildees

ATUALIDADE ndash O valor da informaccedilatildeo dependeraacute em grande parte da sua atualidade

Dado o dinamismo verificado em todos os setores da sociedade em geral e do ambiente

empresarial em particular o periacuteodo de validade da informaccedilatildeo eacute cada vez mais curto Torna-se

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2165

21

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

necessaacuterio dispor de fontes de informaccedilatildeo que acompanhem continuamente essas modificaccedilotildees

Soacute com base em informaccedilatildeo atualizada se podem tomar decisotildees acertadas

CORRECcedilAtildeO ndash Natildeo basta que a informaccedilatildeo seja atual eacute tambeacutem necessaacuterio que na

medida do possiacutevel seja rigorosa Soacute com informaccedilatildeo correta se pode decidir com confianccedila

RELEVAcircNCIA ndash Dado o grande de volume de informaccedilatildeo envolvida o processo de tomada

de decisatildeo ao contraacuterio de ser facilitado pode ser dificultado pelo excesso de informaccedilatildeo A

informaccedilatildeo deve ser devidamente filtrada de tal forma que apenas aquela com relevacircncia para

cada situaccedilatildeo seja considerada

DISPONIBILIDADE ndash Ainda que a informaccedilatildeo verifique os trecircs requisitos anteriores a sua

utilidades poderaacute ser posta em causa se natildeo puder ser disponibilizada de forma imediata no

momento em que eacute solicitada As decisotildees muito ponderadas com o longo periacuteodo de gestaccedilatildeo

satildeo cada vez mais situaccedilotildees do passado Hoje dadas as caracteriacutesticas do meio envolvente oprocesso de tomada de decisatildeo tem que ser quase instantacircneo Para isso a informaccedilatildeo tem que

ser disponibilizada rapidamente caso contraacuterio deixa de ser uacutetil

LEGIBILIDADE - Esta condiccedilatildeo apesar de apresentada em uacuteltimo lugar natildeo eacute por isso

menos importante A informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada

De fato de nada vale que a informaccedilatildeo seja atual precisa relevante e disponibilizada em

tempo oportuno se natildeo puder ser entendida A forma como eacute disponibilizada tem tambeacutem grande

importacircncia informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada A forma como eacutedisponibilizada tem tambeacutem grande importacircncia

Quanto aos requisitos de atualidade e correccedilatildeo da informaccedilatildeo para que esta possa ser

correta e atual os dados de onde eacute derivada tecircm forccedilosamente que ser precisos e atualizados

Quanto aos requisitos de relevacircncia disponibilidade e legibilidade da informaccedilatildeo estes tecircm mais

a ver com os meios utilizados para o processamento dos dados

Como eacute que a informaccedilatildeo eacute organizada

A organizaccedilatildeo da informaccedilatildeo eacute efetuada de acordo com criteacuterios distintos como

Hierarquia dos seus componentes

O tipo de assunto a que se refere

Forma de armazenamento

Quanto agrave HIERARQUIA DOS COMPONENTES DA INFORMACcedilAtildeO esta eacute organizada em

Caracteres Campos Registros Ficheiros Caracteres - podem ser numeacutericos alfabeacuteticos ou

sinais de pontuaccedilatildeo Campos - satildeo conjuntos de caracteres que identificam um componente de

um registo Registos - satildeo agrupamentos de campos descritivos de uma realidade Ficheiros - satildeo

conjuntos de registos cuja informaccedilatildeo eacute estruturalmente analoacutegica

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2265

22

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Quanto AO TIPO DE ASSUNTO a que se refere agrave informaccedilatildeo

Esta pode ser como que etiquetada de modo a tornar faacutecil a sua procura e a evitar perdas

de tempo

Quando a informaccedilatildeo estaacute armazenada em ficheiros estes indicam o seu tipo atraveacutes de

uma extensatildeo ao nome do ficheiro

Algumas das extensotildees mais comuns satildeo

- COM ficheiro de comandos - BACK backup ou coacutepias de seguranccedila- EXE executaacuteveis - SYS ficheiros de sistema

- BAT processamento batch - XLS folha de caacutelculo provenientes do Excel

- TXT texto no formato ASCII - PPT apresentaccedilotildees provenientes do PowerPoint

- PAS programas em Linguagem Pascal - MBD base de dados provenientes do Access

- C programas em Linguagem C - DOC documentos provenientes de um processador de

texto

Quanto Agrave FORMA DE ARMAZENAMENTO da informaccedilatildeoRelativamente ao armazenamento por exemplo no disco riacutegido do computador a

informaccedilatildeo eacute organizada em diretorias cujo nome revela o tipo de ficheiros que aiacute se encontram

podendo cada diretorias conter diversas subdiretorias

Organizaccedilatildeo dos dados num Computador

Os dados que fornecemos a um computador para processar podem ser de trecircs tipos

quantitativos classificativos referenciais

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2365

23

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Dados quantitativos - satildeo os que exprimem quantidades e por isso normalmente servem

de base para caacutelculos aritmeacuteticos Exemplo a ficha escolar as notas do periacuteodo as faltas o total

das faltas

bull Dados classificativos - satildeo os que descrevem ou especificam os elementos envolvidos e

quantificados Normalmente servem de complemento aos dados quantitativos identificando

pessoas objetos situaccedilotildees etc Natildeo servem portanto para elementos de caacutelculo Exemplo a

ficha escolar o nome do aluno o nome da disciplina o nome do professor

bull Dados referenciais - satildeo dados que permitem controlar e referenciar os elementos

tratados Exemplo a ficha escolar o ano letivo o nuacutemero do aluno a turma

Para fixar

Escreva de forma resumida como podemos organizar os dados

_________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

Tipos de Operaccedilotildees realizadas sobre os dados

O tipo de operaccedilotildees efetuadas depende dos objetivos do processamento e igualmente dostipos de dados nele envolvidos pois o computador pode processar dados numeacutericos ou natildeo

numeacutericos Assim temos como operaccedilotildees possiacuteveis num processamento

bull Operaccedilotildees aritmeacuteticas - satildeo efetuadas apenas sobre dados numeacutericos e satildeo

basicamente constituiacutedas por somas subtraccedilotildees multiplicaccedilotildees divisotildees e outras similares

bull Operaccedilotildees loacutegicas - satildeo efetuadas sobre dados numeacutericos ou natildeo numeacutericos Estas

operaccedilotildees satildeo tambeacutem por vezes designadas por operaccedilotildees de comparaccedilatildeo

bull Operaccedilotildees de movimentaccedilatildeo interna - satildeo efetuadas sobre qualquer tipo de dados e

consistem na coacutepia e mudanccedila de localizaccedilatildeo interna dos dados na memoacuteria do computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2465

24

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Operaccedilatildeo de InputOutput - satildeo as operaccedilotildees que envolvem os oacutergatildeos de entrada e

saiacuteda permitindo a comunicaccedilatildeo entre o operador e a maacutequina

Funccedilotildees do processamento de dados

Considera-se como processamento de dados o conjunto de todas as operaccedilotildees efetuadas desde

a entrada dos dados ateacute agrave saiacuteda da informaccedilatildeo Todas estas operaccedilotildees de vaacuterios tipos satildeo

normalmente associadas a seis funccedilotildees do processamento de dados input ordenaccedilatildeo

processamento armazenamento output e controle

bull Input - fase de seleccedilatildeo e aquisiccedilatildeo dos dados pelo computador

bull Ordenaccedilatildeo - esta eacute uma funccedilatildeo auxiliar O seu objetivo eacute dispor os dados de uma forma

organizada (ordenada) de modo a facilitar o seu tratamento Se os dados se mantiverem

ordenados segundo um determinado criteacuterio preacute-definido a sua pesquisa eacute mais faacutecil o que faz

aumentar a velocidade do processamento

bull Processamento - considera-se processamento ao conjunto de todas as operaccedilotildees

efetuadas internamente pelo computador na manipulaccedilatildeo dos dados

bull Armazenamento - esta eacute uma funccedilatildeo muito importante que permite posteriormente

analisar as etapas e os resultados do processamento

bull Output - eacute a obtenccedilatildeo de resultados sob a forma de informaccedilatildeo significativa para as

pessoas a quem se destina

bull Controle - a sua finalidade eacute detectar corrigir e eliminar possiacuteveis erros ou afastamentosem relaccedilatildeo aos objetivos inicialmente traccedilados

Utilidade de um banco de dados

Um banco de dados permite pocircr dados agrave disposiccedilatildeo de usuaacuterios para uma consulta uma

introduccedilatildeo ou uma atualizaccedilatildeo assegurando-se dos direitos atribuiacutedos a estes uacuteltimos Isso eacute

ainda mais uacutetil quando os dados informaacuteticos satildeo cada vez mais numerosos

Um banco de dados pode ser local quer dizer utilizaacutevel em uma maacutequina por um usuaacuterio

ou repartida quer dizer que as informaccedilotildees satildeo armazenadas em maacutequinas distantes eacessiacuteveis por rede A vantagem essencial da utilizaccedilatildeo dos bancos de dados eacute a possibilidade

de poder ser acessada por vaacuterios usuaacuterios simultaneamente

A gestatildeo dos bancos de dados

A fim de poder controlar os dados bem como os usuaacuterios a necessidade de um sistema de

gestatildeo fez-se sentir rapidamente A gestatildeo do banco de dados faz-se graccedilas a um sistema

chamado SGBD (sistema de gestatildeo de bancos de dados) ou em inglecircs DBMS (Database

managment system) O SGBD eacute um conjunto de serviccedilos (aplicaccedilotildees software) que permitem

gerenciar os bancos de dados quer dizer

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2565

25

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Permitir o acesso aos dados de maneira simples

Autorizar um acesso agraves informaccedilotildees a muacuteltiplos usuaacuterios

Manipular os dados presentes no banco de dados (inserccedilatildeo supressatildeo modificaccedilatildeo)

O SGBD pode decompor-se em trecircs subsistemas

O sistema de gestatildeo de arquivos permite o armazenamento das informaccedilotildees num suporte

fiacutesico

O SGBD interno gerencia a emissatildeo das informaccedilotildees

O SGBD externo representa a interface com o usuaacuterio

Bancos de dados satildeo conjuntos de dados com uma estrutura regular que organizam

informaccedilatildeo Um banco de dados normalmente agrupa informaccedilotildees utilizadas para um mesmo fim

O modelo de dados mais adotado hoje em dia eacute o modelo relacional onde as estruturas

tecircm a forma de tabelas compostas por linhas e colunas

Resumindo um banco de dados eacute uma coleccedilatildeo de dados relacionados Entende-se por

dado toda a informaccedilatildeo que pode ser armazenada e que apresenta algum significado impliacutecito

dentro do contexto ao qual ele se aplica Por exemplo num sistema bancaacuterio uma pessoa eacuteidentificada pelo seu cpf(cliente) Em um sistema escolar a pessoa eacute identificada pelo seu nuacutemero

de matriacutecula(aluno) Aleacutem disso os dados que seratildeo armazenados em cada situaccedilatildeo podem

diferir consideravelmente

Atividades

1) Onde utilizar um banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2665

26

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2) Como funciona um sistema gerenciador de banco de dados

3) Como funciona o modelo relacional

Modelo Relacional

O modelo relacional eacute uma teoria matemaacutetica desenvolvida por Edgar Frank Codd para

descrever como as bases de dados devem funcionar Embora esta teoria seja a base para o

software de bases de dados relacionais muito poucos sistemas de gestatildeo de bases de dados

seguem o modelo de forma restrita e todos tecircm funcionalidades que violam a teoria desta forma

variando a complexidade e o poder A discussatildeo se esses bancos de dados merecem ser

chamados de relacional ficou esgotada com tempo com a evoluccedilatildeo dos bancos existentes

De acordo com a arquitetura ANSI SPARC em trecircs niacuteveis os Bancos de dados

relacionais consistem de trecircs componentes

bull uma coleccedilatildeo de estruturas de dados formalmente chamadas de relaccedilotildees ou

informalmente tabelas compondo o niacutevel conceitual

bull uma coleccedilatildeo dos operadores a aacutelgebra e o caacutelculo relacionais que constituem a base da

linguagem SQL

bull uma coleccedilatildeo de restriccedilotildees da integridade definindo o conjunto consistente de estados de

base de dados e de alteraccedilotildees de estados As restriccedilotildees de integridade podem ser de quatro

tipos

bull domiacutenio (ou tipo de dados) bull atributo

bull restriccedilotildees de base de dados

De acordo com o Princiacutepio de Informaccedilatildeo toda informaccedilatildeo tem de ser representada como dados

qualquer tipo de atributo representa relaccedilotildees entre conjuntos de dados

Nos bancos de dados relacionais os relacionamentos entre as tabelas natildeo satildeo codificados

explicitamente na sua definiccedilatildeo Em vez disso se fazem implicitamente pela presenccedila de

atributos chave As bases de dados relacionais permitem aos utilizadores (incluindo

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2765

27

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

programadores) escreverem consultas (queries) reorganizando e utilizando os dados de forma

flexiacutevel e natildeo necessariamente antecipada pelos projetistas originais

Esta flexibilidade eacute especialmente importante em bases de dados que podem ser utilizadas

durante deacutecadas tornando as bases de dados relacionais muito populares no meio comercial

Um dos pontos fortes do modelo relacional de banco de dados eacute a possibilidade de

definiccedilatildeo de um conjunto de restriccedilotildees de integridade Estas definem os conjuntos de estados e

mudanccedilas de estado consistentes do banco de dados determinando os valores que podem e os

que natildeo podem ser armazenados

Aplicaccedilotildees de bancos de dados

Bancos de dados satildeo usados em muitas aplicaccedilotildees enquanto atravessando virtualmente a

gama inteira de software de computador Bancos de dados eacute o meacutetodo preferido de

armazenamento para aplicaccedilotildees multiusuaacuterias grandes onde a coordenaccedilatildeo entre muitosusuaacuterios eacute necessaacuteria Ateacute mesmo usuaacuterios individuais os acham convenientes entretanto e

muitos programas de correio eletrocircnico e os organizadores pessoais estatildeo baseados em

tecnologia de banco de dados standard

Aplicativo de Banco de Dados

Um aplicativo de banco de dados eacute um tipo de software exclusivo para gerenciar um banco

de dados Aplicativos de banco de dados abrangem uma vasta variedade de necessidades e

objetivos de pequenas ferramentas como uma agenda ateacute complexos sistemas empresariaispara desempenhar tarefas como a contabilidade

O termo Aplicativo de Banco de dados usualmente se refere a softwares que oferecem

uma interface para o banco de dados Exemplos de aplicativos de banco de dados satildeo Microsoft

Visual FoxPro Microsoft Access dBASE FileMaker (em certa medida) HyperCard MySQL

PostgreSQL Microsoft SQL Server e Oracle

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2865

28

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Capiacutetulo 3 - HARDWARE E SOFTWARE

O QUE Eacute O HARDWARE

No acircmbito da informaacutetica eacute dada a designaccedilatildeo de hardware a todos os componentes

fiacutesicos que fazem parte de um sistema informaacutetico incluiacutedo toda a parte fiacutesica de um computador

(nomeadamente os processadores motherbord disco riacutegido placas de som placas de viacutedeo

memoacuterias etc) e todos os perifeacutericos (tais como teclados mouse monitores impressoras

scanners modems entre outros)

Peccedilas de um computador

Se vocecirc usa um computador desktop jaacute deve saber que natildeo existe uma parte uacutenica

chamada computador Um computador eacute na verdade um sistema de muitas partes funcionando

em conjunto As partes fiacutesicas que vocecirc pode ver e tocar satildeo denominadas

coletivamente hardware (O software por outro lado se refere agraves instruccedilotildees ou programas que

dizem ao hardware o que fazer)

A ilustraccedilatildeo a seguir mostra os dispositivos de hardware mais comuns em um sistema de

computador desktop Seu sistema pode ter uma aparecircncia um pouco diferente mas

provavelmente possui a maioria destas peccedilas Um computador laptop possui peccedilas semelhantes

mas as combina em um uacutenico pacote do tamanho de um caderno

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2965

29

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Sistema de computador desktop

Unidade de sistema

A unidade de sistema (Gabinete) eacute o nuacutecleo de um sistema de computador Normalmente

eacute uma caixa retangular colocada sobre a mesa ou embaixo dela Dentro dessa caixa estatildeo os

componentes eletrocircnicos que processam as informaccedilotildees O mais importante desses

componentes eacute a CPU (unidade de processamento central) ou microprocessador que atua como

o ceacuterebro do computador Outro componente eacute a memoacuteria RAM que armazena

temporariamente informaccedilotildees utilizadas pela CPU enquanto o computador estaacute ligado As

informaccedilotildees gravadas na RAM satildeo apagadas quando o computador eacute desligado

Quase todas as outras partes do computador se conectam agrave unidade de sistema por meio

de cabos Os cabos satildeo conectados aportas (aberturas) especiacuteficas geralmente na parte traseira

da unidade de sistema O hardware que natildeo faz parte da unidade de sistema eacute

chamado dispositivo perifeacuterico ou simplesmente dispositivo

Unidade de sistema

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3065

30

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Armazenamento

O computador possui uma ou mais unidades de disco ou seja dispositivos que armazenam

informaccedilotildees em um disco de plaacutestico ou de metal O disco preserva as informaccedilotildees mesmo

quando o computador estaacute desligado

Unidade de disco riacutegido

A unidade de disco riacutegido do computador armazena informaccedilotildees em um disco riacutegido que eacute um

prato riacutegido ou pilha de pratos com uma superfiacutecie magneacutetica Como os discos riacutegidos podem

reter uma grande quantidade de informaccedilotildees normalmente eles funcionam como principal meio

de armazenamento do computador guardando praticamente todos os programas e arquivos Em

geral a unidade de disco riacutegido fica localizada dentro da unidade de sistema

Unidade de disco riacutegidoUnidades de CD e DVD

Hoje em dia quase todos os computadores vecircm equipados com uma unidade de CD ou DVD

geralmente localizada na frente da unidade de sistema As unidades de CD usam lasers para ler

(recuperar) dados de um CD Muitas delas tambeacutem podem gravar dados em CDs Se vocecirc tiver

uma unidade de disco gravaacutevel poderaacute armazenar coacutepias de seus arquivos em CDs vazios A

unidade de CD tambeacutem serve para tocar CDs de muacutesica no computador

CD

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3165

31

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

As unidades de DVD fazem o mesmo que as unidades de CD e tambeacutem lecircem DVDs Se vocecirc

tiver uma unidade de DVD poderaacute ver filmes no computador Muitas unidades de DVD podem

gravar dados em DVDs vazios

Dica

Se vocecirc tiver uma unidade de CD ou DVD gravaacutevel faccedila backup (copie) periodicamente de seus

arquivos importantes em CDs ou DVDs Dessa forma caso venha a ocorrer alguma falha no disco

riacutegido vocecirc natildeo perderaacute os dados

Unidade de disquete

As unidades de disquete armazenam informaccedilotildees em discos tambeacutem chamados discos

flexiacuteveis ou disquetes Comparado a CDs e DVDs os disquetes podem armazenar apenas uma

pequena quantidade de dados Eles tambeacutem recuperam informaccedilotildees de forma mais lenta e satildeo

mais vulneraacuteveis a danos Por esses motivos as unidades de disquete satildeo cada vez menosusadas embora ainda sejam incluiacutedas em alguns computadores

Disquete

Por que estes discos satildeo chamados de disquetes Apesar de a parte externa ser composta de

plaacutestico riacutegido isso eacute apenas a capa O interior do disco eacute feito de um material de vinil fino e

flexiacutevel

Mouse

Mouse eacute um pequeno dispositivo usado para apontar e selecionar itens na tela do computador

Embora existam mouses de vaacuterias formas o modelo mais comum se assemelha a um rato (como

diz o nome em inglecircs) Ele eacute pequeno e alongado sendo conectado agrave unidade de sistema por um

cabo comprido que faz lembrar uma cauda Alguns mouses mais novos satildeo sem fio

Mouse

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3265

32

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O mouse geralmente possui dois bototildees um botatildeo principal (normalmente o da esquerda) e um

botatildeo secundaacuterio Muitos mouses tambeacutem tecircm uma roda entre os dois bototildees que permite

percorrer as telas de informaccedilotildees

Ponteiros do mouse

Agrave medida que vocecirc move o mouse com a matildeo um ponteiro na tela se move na mesma direccedilatildeo

(A aparecircncia do ponteiro pode mudar dependendo da sua posiccedilatildeo na tela) Quando quiser

selecionar um item aponte para ele e clique no botatildeo principal ou seja pressione-o e solte-o

Apontar e clicar com o mouse eacute a principal maneira de interagir com o computador Para mais

informaccedilotildees consulte Usando o mouse

Teclado

A finalidade principal do teclado eacute digitar texto no computador Ele possui teclas para letras e

nuacutemeros exatamente como em uma maacutequina de escrever A diferenccedila estaacute nas teclas especiais

As teclas de funccedilatildeo localizadas na linha superior executam funccedilotildees diferentes dependendo

de onde satildeo usadas

O teclado numeacuterico localizado agrave direita na maioria dos teclados permite inserir nuacutemeros

rapidamente

As teclas de navegaccedilatildeo como as teclas de seta permitem mover sua posiccedilatildeo dentro de

documentos ou paacuteginas da Web

Teclado

Vocecirc tambeacutem pode usar o teclado para executar muitas das mesmas tarefas que executa com

um mouse Para mais informaccedilotildees consulte Usando o teclado

Monitor

O monitor exibe informaccedilotildees em forma visual usando texto e elementos graacuteficos A parte do

monitor que exibe as informaccedilotildees eacute chamada tela Como a tela de uma televisatildeo a tela de um

computador pode mostrar imagens paradas ou em movimento

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3365

33

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Existem dois tipos baacutesicos de monitores CRT (tubo de raios catoacutedicos) e LCD (viacutedeo de cristal

liacutequido) Ambos produzem imagens niacutetidas mas os monitores LCD levam vantagem por serem

mais finos e mais leves

Monitor LCD (agrave esquerda) monitor CRT (agrave direita)

Impressora

Uma impressora transfere dados de um computador para o papel Vocecirc natildeo precisa de

impressora para usar o computador mas se tiver uma poderaacute imprimir emails cartotildees convites

anuacutencios e outros materiais Muitas pessoas tambeacutem preferem imprimir suas fotos em casa

Os dois principais tipos de impressora satildeo a jato de tinta e a laser As impressoras a jato de tinta

satildeo as mais populares para uso domeacutestico Elas podem imprimir em preto e branco ou em cores

e produzem fotos de alta qualidade quando usadas com papel especial As impressoras a laser

satildeo mais raacutepidas e mais adequadas para uso intenso

Impressora a jato de tinta (agrave esquerda) impressora a laser (agrave direita)

Alto-falantes

Os alto-falantes satildeo usados para tocar som Eles podem vir embutidos na unidade de sistema ou

ser conectados com cabos Satildeo eles que permitem ouvir muacutesica e efeitos de som no computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3465

34

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Alto-falantes do computador

Modem

Para conectar o computador agrave Internet vocecirc precisa de um modem um dispositivo que envia e

recebe informaccedilotildees do computador por linha telefocircnica ou cabo de alta velocidade Agraves vezes os

modems vecircm embutidos na unidade de sistema mas os de alta velocidade normalmente satildeo

componentes separados

Modem a cabo

O QUE Eacute O SOFTWARE

O Software eacute uma aplicaccedilatildeo ou programa do computador escrita numa determinadalinguagem interpretaacutevel por uma determinada maacutequina (o processador de um computador ou

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3565

35

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

outro equipamento) e que permite executar determinadas tarefas para as quais o software foi

projetado Estes programas satildeo compostos por uma sequecircncia de instruccedilotildees (os comandos) e de

declaraccedilotildees de dados as quais satildeo armazenaacuteveis num meio digital

Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por um

computador com o objetivo de executar tarefas especiacuteficas Tambeacutem pode ser definido como

os programas que comandam o funcionamento de um computador

Em um computador o software eacute classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer

instruccedilotildees para o hardware O hardware eacute toda a parte fiacutesica que constitui o computador por

exemplo a CPU a memoacuteria e os dispositivos de entrada e saiacuteda O software eacute constituiacutedo por

todos os programas que existem para um referido sistema quer sejam produzidos pelo proacuteprio

utente ou pelo fabricante do computador

O termo inglecircs software foi usado pela primeira vez em 1958 em um artigo escrito pelo cientistaamericano John Wilder Tukey Foi tambeacutem ele o responsaacutevel por introduzir o termo bit para

designar diacutegito binaacuterio

Os softwares podem ser classificados como

SOFTWARE DE SISTEMA

Geralmente dividido em SISTEMAS OPERACIONAIS e PROGRAMAS UTILITAacuteRIOS Para

comeccedilar os Sist Operacionais satildeo de grande importacircncia pois eles nos datildeo a opccedilatildeo de dizer ao

computador o que ele deve fazer Dois exemplos bastante conhecidos do nosso puacuteblico satildeoo Mac o Windows e o Linux Os Programas utilitaacuterios geralmente satildeo softwares de menor porte

com funccedilotildees mais especificas tipo Verificaccedilatildeo de Disco Coacutepias de Seguranccedila entre outros

SOFTWARE APLICATIVO

Neste tipo de software se enquadram todos aqueles programas que satildeo utilizados na execuccedilatildeo

de tarefas especiacuteficas Posso citar vaacuterios exemplos mas os mais comuns satildeo os processadores

de texto como o Word que servem para trabalhar com os mais diversos tipos de textos emitir

etiquetas e fazer formulaacuterios as planilhas eletrocircnicas como o Excel satildeo poderosas ferramentas

de caacutelculos que facilitam tanto aquele trabalho aacuterduo de matemaacutetica fazer graacuteficos com real

representaccedilatildeo dos dados eacute uma coisa muito boa pra quem precisa e por uacuteltimo o que muitos

usam mas natildeo sabem o nome ao certo que satildeo os Browsers ou Navegadores softwares usados

para navegar na Web dentre eles os mais conhecidos atualmente satildeo Windows Internet

Explorer Firefox Google Chrome Opera e Safaacuteri

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3665

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3765

37

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

hoje eles satildeo bastante usados em situaccedilotildees de treinamentos de pessoas para enfrentar casos no

seu dia-a-dia

SOFTWARE DE JOGOS

Geralmente satildeo softwares relacionados a entretenimento para proporcionar lazer e diversatildeo

Dispotildeem de muitos recursos interativos e existem de todos os tipos desde estrateacutegias ateacute

simulaccedilotildees reais de muitas coisas como corridas (Need for Speed) ateacute mesmo de vida como o

Second Life

SOFTWARES ABERTOS

Satildeo aqueles que permitem que o usuaacuterio produza com liberdade e criatividade se classificam

nessa categoria aqueles softwares de apresentaccedilotildees bancos de dados e vaacuterios outros

Para fixar

Descreva uma definiccedilatildeo para os tipos de softwares

Software de Sistema_____________________________________________________________

Software Aplicativo ______________________________________________________________

Software de Linguagem __________________________________________________________

Software abertos _______________________________________________________________

Capiacutetulo 4 - Conceitos Baacutesicos de Banco de Dados

Segundo Korth um banco de dados ldquoeacute uma coleccedilatildeo de dados inter -relacionados

representando informaccedilotildees sobre um domiacutenio especiacuteficordquo ou seja sempre que for possiacutevel

agrupar informaccedilotildees que se relacionam e tratam de um mesmo assunto posso dizer que tenho

um banco de dados

Podemos exemplificar situaccedilotildees claacutessicas como uma lista telefocircnica um cataacutelogo de CDs ou um

sistema de controle de RH de uma empresa

Jaacute um sistema de gerenciamento de banco de dados (SGBD) eacute um software que possui

recursos capazes de manipular as informaccedilotildees do banco de dados e interagir com o usuaacuterio

Exemplos de SGBDs satildeo Oracle SQL Server DB2 PostgreSQL MySQL o proacuteprio Access ouParadox entre outros

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3865

38

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Por uacuteltimo temos que conceituar um sistema de banco de dados como o conjunto de quatro

componentes baacutesicos dados hardware software e usuaacuterios Date conceituou que ldquosistema de

bancos de dados pode ser considerado como uma sala de arquivos eletrocircnicardquo A Figura 1 ilustra

os componentes de um sistema de banco de dados

Componentes de um sistema de banco de dados

Os objetivos de um sistema de banco de dados satildeo o de isolar o usuaacuterio dos detalhes

internos do banco de dados (promover a abstraccedilatildeo de dados) e promover a independecircncia dos

dados em relaccedilatildeo agraves aplicaccedilotildees ou seja tornar independente da aplicaccedilatildeo a estrateacutegia de

acesso e a forma de armazenamento

Abstraccedilatildeo de dados

O sistema de banco de dados deve garantir uma visatildeo totalmente abstrata do banco de

dados para o usuaacuterio ou seja para o usuaacuterio do banco de dados pouco importa qual unidade de

armazenamento estaacute sendo usada para guardar seus dados contanto que os mesmos estejam

disponiacuteveis no momento necessaacuterio

Esta abstraccedilatildeo se daacute em trecircs niacuteveis (Figura 2) Niacutevel de visatildeo do usuaacuterio as partes do banco de dados que o usuaacuterio tem acesso de

acordo com a necessidade individual de cada usuaacuterio ou grupo de usuaacuterios

Niacutevel conceitual define quais os dados que estatildeo armazenados e qual o relacionamento

entre eles

Niacutevel fiacutesico eacute o niacutevel mais baixo de abstraccedilatildeo em que define efetivamente de que maneira

os dados estatildeo armazenados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3965

39

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 2 Niacuteveis de abstraccedilatildeo

Projeto de banco de dados

Todo bom sistema de banco de dados deve apresentar um projeto que visa a organizaccedilatildeo das

informaccedilotildees e utilizaccedilatildeo de teacutecnicas para que o futuro sistema obtenha boa performance e

tambeacutem facilite infinitamente as manutenccedilotildees que venham a acontecer

O projeto de banco de dados se daacute em duas fases

Modelagem conceitual Projeto loacutegico

Estas duas etapas se referem a um sistema de banco de dados ainda natildeo implementado ou seja

que ainda natildeo exista um novo projeto Para os casos em que o banco de dados jaacute exista mas eacute

um sistema legado por exemplo ou um sistema muito antigo sem documentaccedilatildeo o processo de

projeto de banco de dados se daraacute atraveacutes da utilizaccedilatildeo de uma teacutecnica chamada de Engenharia

Reversa que seraacute visto em outra oportunidade

Modelo conceitual

Eacute a descriccedilatildeo do BD de maneira independente ao SGBD ou seja define quais os dados

que apareceratildeo no BD mas sem se importar com a implementaccedilatildeo que se daraacute ao BD Desta

forma haacute uma abstraccedilatildeo em niacutevel de SGBD

Uma das teacutecnicas mais utilizadas dentre os profissionais da aacuterea eacute a abordagem entidade-

relacionamento (ER) onde o modelo eacute representado graficamente atraveacutes do diagrama entidade-

relacionamento (DER) (Figura 3)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 21: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2165

21

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

necessaacuterio dispor de fontes de informaccedilatildeo que acompanhem continuamente essas modificaccedilotildees

Soacute com base em informaccedilatildeo atualizada se podem tomar decisotildees acertadas

CORRECcedilAtildeO ndash Natildeo basta que a informaccedilatildeo seja atual eacute tambeacutem necessaacuterio que na

medida do possiacutevel seja rigorosa Soacute com informaccedilatildeo correta se pode decidir com confianccedila

RELEVAcircNCIA ndash Dado o grande de volume de informaccedilatildeo envolvida o processo de tomada

de decisatildeo ao contraacuterio de ser facilitado pode ser dificultado pelo excesso de informaccedilatildeo A

informaccedilatildeo deve ser devidamente filtrada de tal forma que apenas aquela com relevacircncia para

cada situaccedilatildeo seja considerada

DISPONIBILIDADE ndash Ainda que a informaccedilatildeo verifique os trecircs requisitos anteriores a sua

utilidades poderaacute ser posta em causa se natildeo puder ser disponibilizada de forma imediata no

momento em que eacute solicitada As decisotildees muito ponderadas com o longo periacuteodo de gestaccedilatildeo

satildeo cada vez mais situaccedilotildees do passado Hoje dadas as caracteriacutesticas do meio envolvente oprocesso de tomada de decisatildeo tem que ser quase instantacircneo Para isso a informaccedilatildeo tem que

ser disponibilizada rapidamente caso contraacuterio deixa de ser uacutetil

LEGIBILIDADE - Esta condiccedilatildeo apesar de apresentada em uacuteltimo lugar natildeo eacute por isso

menos importante A informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada

De fato de nada vale que a informaccedilatildeo seja atual precisa relevante e disponibilizada em

tempo oportuno se natildeo puder ser entendida A forma como eacute disponibilizada tem tambeacutem grande

importacircncia informaccedilatildeo soacute eacute informaccedilatildeo se puder ser interpretada A forma como eacutedisponibilizada tem tambeacutem grande importacircncia

Quanto aos requisitos de atualidade e correccedilatildeo da informaccedilatildeo para que esta possa ser

correta e atual os dados de onde eacute derivada tecircm forccedilosamente que ser precisos e atualizados

Quanto aos requisitos de relevacircncia disponibilidade e legibilidade da informaccedilatildeo estes tecircm mais

a ver com os meios utilizados para o processamento dos dados

Como eacute que a informaccedilatildeo eacute organizada

A organizaccedilatildeo da informaccedilatildeo eacute efetuada de acordo com criteacuterios distintos como

Hierarquia dos seus componentes

O tipo de assunto a que se refere

Forma de armazenamento

Quanto agrave HIERARQUIA DOS COMPONENTES DA INFORMACcedilAtildeO esta eacute organizada em

Caracteres Campos Registros Ficheiros Caracteres - podem ser numeacutericos alfabeacuteticos ou

sinais de pontuaccedilatildeo Campos - satildeo conjuntos de caracteres que identificam um componente de

um registo Registos - satildeo agrupamentos de campos descritivos de uma realidade Ficheiros - satildeo

conjuntos de registos cuja informaccedilatildeo eacute estruturalmente analoacutegica

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2265

22

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Quanto AO TIPO DE ASSUNTO a que se refere agrave informaccedilatildeo

Esta pode ser como que etiquetada de modo a tornar faacutecil a sua procura e a evitar perdas

de tempo

Quando a informaccedilatildeo estaacute armazenada em ficheiros estes indicam o seu tipo atraveacutes de

uma extensatildeo ao nome do ficheiro

Algumas das extensotildees mais comuns satildeo

- COM ficheiro de comandos - BACK backup ou coacutepias de seguranccedila- EXE executaacuteveis - SYS ficheiros de sistema

- BAT processamento batch - XLS folha de caacutelculo provenientes do Excel

- TXT texto no formato ASCII - PPT apresentaccedilotildees provenientes do PowerPoint

- PAS programas em Linguagem Pascal - MBD base de dados provenientes do Access

- C programas em Linguagem C - DOC documentos provenientes de um processador de

texto

Quanto Agrave FORMA DE ARMAZENAMENTO da informaccedilatildeoRelativamente ao armazenamento por exemplo no disco riacutegido do computador a

informaccedilatildeo eacute organizada em diretorias cujo nome revela o tipo de ficheiros que aiacute se encontram

podendo cada diretorias conter diversas subdiretorias

Organizaccedilatildeo dos dados num Computador

Os dados que fornecemos a um computador para processar podem ser de trecircs tipos

quantitativos classificativos referenciais

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2365

23

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Dados quantitativos - satildeo os que exprimem quantidades e por isso normalmente servem

de base para caacutelculos aritmeacuteticos Exemplo a ficha escolar as notas do periacuteodo as faltas o total

das faltas

bull Dados classificativos - satildeo os que descrevem ou especificam os elementos envolvidos e

quantificados Normalmente servem de complemento aos dados quantitativos identificando

pessoas objetos situaccedilotildees etc Natildeo servem portanto para elementos de caacutelculo Exemplo a

ficha escolar o nome do aluno o nome da disciplina o nome do professor

bull Dados referenciais - satildeo dados que permitem controlar e referenciar os elementos

tratados Exemplo a ficha escolar o ano letivo o nuacutemero do aluno a turma

Para fixar

Escreva de forma resumida como podemos organizar os dados

_________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

Tipos de Operaccedilotildees realizadas sobre os dados

O tipo de operaccedilotildees efetuadas depende dos objetivos do processamento e igualmente dostipos de dados nele envolvidos pois o computador pode processar dados numeacutericos ou natildeo

numeacutericos Assim temos como operaccedilotildees possiacuteveis num processamento

bull Operaccedilotildees aritmeacuteticas - satildeo efetuadas apenas sobre dados numeacutericos e satildeo

basicamente constituiacutedas por somas subtraccedilotildees multiplicaccedilotildees divisotildees e outras similares

bull Operaccedilotildees loacutegicas - satildeo efetuadas sobre dados numeacutericos ou natildeo numeacutericos Estas

operaccedilotildees satildeo tambeacutem por vezes designadas por operaccedilotildees de comparaccedilatildeo

bull Operaccedilotildees de movimentaccedilatildeo interna - satildeo efetuadas sobre qualquer tipo de dados e

consistem na coacutepia e mudanccedila de localizaccedilatildeo interna dos dados na memoacuteria do computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2465

24

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Operaccedilatildeo de InputOutput - satildeo as operaccedilotildees que envolvem os oacutergatildeos de entrada e

saiacuteda permitindo a comunicaccedilatildeo entre o operador e a maacutequina

Funccedilotildees do processamento de dados

Considera-se como processamento de dados o conjunto de todas as operaccedilotildees efetuadas desde

a entrada dos dados ateacute agrave saiacuteda da informaccedilatildeo Todas estas operaccedilotildees de vaacuterios tipos satildeo

normalmente associadas a seis funccedilotildees do processamento de dados input ordenaccedilatildeo

processamento armazenamento output e controle

bull Input - fase de seleccedilatildeo e aquisiccedilatildeo dos dados pelo computador

bull Ordenaccedilatildeo - esta eacute uma funccedilatildeo auxiliar O seu objetivo eacute dispor os dados de uma forma

organizada (ordenada) de modo a facilitar o seu tratamento Se os dados se mantiverem

ordenados segundo um determinado criteacuterio preacute-definido a sua pesquisa eacute mais faacutecil o que faz

aumentar a velocidade do processamento

bull Processamento - considera-se processamento ao conjunto de todas as operaccedilotildees

efetuadas internamente pelo computador na manipulaccedilatildeo dos dados

bull Armazenamento - esta eacute uma funccedilatildeo muito importante que permite posteriormente

analisar as etapas e os resultados do processamento

bull Output - eacute a obtenccedilatildeo de resultados sob a forma de informaccedilatildeo significativa para as

pessoas a quem se destina

bull Controle - a sua finalidade eacute detectar corrigir e eliminar possiacuteveis erros ou afastamentosem relaccedilatildeo aos objetivos inicialmente traccedilados

Utilidade de um banco de dados

Um banco de dados permite pocircr dados agrave disposiccedilatildeo de usuaacuterios para uma consulta uma

introduccedilatildeo ou uma atualizaccedilatildeo assegurando-se dos direitos atribuiacutedos a estes uacuteltimos Isso eacute

ainda mais uacutetil quando os dados informaacuteticos satildeo cada vez mais numerosos

Um banco de dados pode ser local quer dizer utilizaacutevel em uma maacutequina por um usuaacuterio

ou repartida quer dizer que as informaccedilotildees satildeo armazenadas em maacutequinas distantes eacessiacuteveis por rede A vantagem essencial da utilizaccedilatildeo dos bancos de dados eacute a possibilidade

de poder ser acessada por vaacuterios usuaacuterios simultaneamente

A gestatildeo dos bancos de dados

A fim de poder controlar os dados bem como os usuaacuterios a necessidade de um sistema de

gestatildeo fez-se sentir rapidamente A gestatildeo do banco de dados faz-se graccedilas a um sistema

chamado SGBD (sistema de gestatildeo de bancos de dados) ou em inglecircs DBMS (Database

managment system) O SGBD eacute um conjunto de serviccedilos (aplicaccedilotildees software) que permitem

gerenciar os bancos de dados quer dizer

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2565

25

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Permitir o acesso aos dados de maneira simples

Autorizar um acesso agraves informaccedilotildees a muacuteltiplos usuaacuterios

Manipular os dados presentes no banco de dados (inserccedilatildeo supressatildeo modificaccedilatildeo)

O SGBD pode decompor-se em trecircs subsistemas

O sistema de gestatildeo de arquivos permite o armazenamento das informaccedilotildees num suporte

fiacutesico

O SGBD interno gerencia a emissatildeo das informaccedilotildees

O SGBD externo representa a interface com o usuaacuterio

Bancos de dados satildeo conjuntos de dados com uma estrutura regular que organizam

informaccedilatildeo Um banco de dados normalmente agrupa informaccedilotildees utilizadas para um mesmo fim

O modelo de dados mais adotado hoje em dia eacute o modelo relacional onde as estruturas

tecircm a forma de tabelas compostas por linhas e colunas

Resumindo um banco de dados eacute uma coleccedilatildeo de dados relacionados Entende-se por

dado toda a informaccedilatildeo que pode ser armazenada e que apresenta algum significado impliacutecito

dentro do contexto ao qual ele se aplica Por exemplo num sistema bancaacuterio uma pessoa eacuteidentificada pelo seu cpf(cliente) Em um sistema escolar a pessoa eacute identificada pelo seu nuacutemero

de matriacutecula(aluno) Aleacutem disso os dados que seratildeo armazenados em cada situaccedilatildeo podem

diferir consideravelmente

Atividades

1) Onde utilizar um banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2665

26

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2) Como funciona um sistema gerenciador de banco de dados

3) Como funciona o modelo relacional

Modelo Relacional

O modelo relacional eacute uma teoria matemaacutetica desenvolvida por Edgar Frank Codd para

descrever como as bases de dados devem funcionar Embora esta teoria seja a base para o

software de bases de dados relacionais muito poucos sistemas de gestatildeo de bases de dados

seguem o modelo de forma restrita e todos tecircm funcionalidades que violam a teoria desta forma

variando a complexidade e o poder A discussatildeo se esses bancos de dados merecem ser

chamados de relacional ficou esgotada com tempo com a evoluccedilatildeo dos bancos existentes

De acordo com a arquitetura ANSI SPARC em trecircs niacuteveis os Bancos de dados

relacionais consistem de trecircs componentes

bull uma coleccedilatildeo de estruturas de dados formalmente chamadas de relaccedilotildees ou

informalmente tabelas compondo o niacutevel conceitual

bull uma coleccedilatildeo dos operadores a aacutelgebra e o caacutelculo relacionais que constituem a base da

linguagem SQL

bull uma coleccedilatildeo de restriccedilotildees da integridade definindo o conjunto consistente de estados de

base de dados e de alteraccedilotildees de estados As restriccedilotildees de integridade podem ser de quatro

tipos

bull domiacutenio (ou tipo de dados) bull atributo

bull restriccedilotildees de base de dados

De acordo com o Princiacutepio de Informaccedilatildeo toda informaccedilatildeo tem de ser representada como dados

qualquer tipo de atributo representa relaccedilotildees entre conjuntos de dados

Nos bancos de dados relacionais os relacionamentos entre as tabelas natildeo satildeo codificados

explicitamente na sua definiccedilatildeo Em vez disso se fazem implicitamente pela presenccedila de

atributos chave As bases de dados relacionais permitem aos utilizadores (incluindo

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2765

27

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

programadores) escreverem consultas (queries) reorganizando e utilizando os dados de forma

flexiacutevel e natildeo necessariamente antecipada pelos projetistas originais

Esta flexibilidade eacute especialmente importante em bases de dados que podem ser utilizadas

durante deacutecadas tornando as bases de dados relacionais muito populares no meio comercial

Um dos pontos fortes do modelo relacional de banco de dados eacute a possibilidade de

definiccedilatildeo de um conjunto de restriccedilotildees de integridade Estas definem os conjuntos de estados e

mudanccedilas de estado consistentes do banco de dados determinando os valores que podem e os

que natildeo podem ser armazenados

Aplicaccedilotildees de bancos de dados

Bancos de dados satildeo usados em muitas aplicaccedilotildees enquanto atravessando virtualmente a

gama inteira de software de computador Bancos de dados eacute o meacutetodo preferido de

armazenamento para aplicaccedilotildees multiusuaacuterias grandes onde a coordenaccedilatildeo entre muitosusuaacuterios eacute necessaacuteria Ateacute mesmo usuaacuterios individuais os acham convenientes entretanto e

muitos programas de correio eletrocircnico e os organizadores pessoais estatildeo baseados em

tecnologia de banco de dados standard

Aplicativo de Banco de Dados

Um aplicativo de banco de dados eacute um tipo de software exclusivo para gerenciar um banco

de dados Aplicativos de banco de dados abrangem uma vasta variedade de necessidades e

objetivos de pequenas ferramentas como uma agenda ateacute complexos sistemas empresariaispara desempenhar tarefas como a contabilidade

O termo Aplicativo de Banco de dados usualmente se refere a softwares que oferecem

uma interface para o banco de dados Exemplos de aplicativos de banco de dados satildeo Microsoft

Visual FoxPro Microsoft Access dBASE FileMaker (em certa medida) HyperCard MySQL

PostgreSQL Microsoft SQL Server e Oracle

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2865

28

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Capiacutetulo 3 - HARDWARE E SOFTWARE

O QUE Eacute O HARDWARE

No acircmbito da informaacutetica eacute dada a designaccedilatildeo de hardware a todos os componentes

fiacutesicos que fazem parte de um sistema informaacutetico incluiacutedo toda a parte fiacutesica de um computador

(nomeadamente os processadores motherbord disco riacutegido placas de som placas de viacutedeo

memoacuterias etc) e todos os perifeacutericos (tais como teclados mouse monitores impressoras

scanners modems entre outros)

Peccedilas de um computador

Se vocecirc usa um computador desktop jaacute deve saber que natildeo existe uma parte uacutenica

chamada computador Um computador eacute na verdade um sistema de muitas partes funcionando

em conjunto As partes fiacutesicas que vocecirc pode ver e tocar satildeo denominadas

coletivamente hardware (O software por outro lado se refere agraves instruccedilotildees ou programas que

dizem ao hardware o que fazer)

A ilustraccedilatildeo a seguir mostra os dispositivos de hardware mais comuns em um sistema de

computador desktop Seu sistema pode ter uma aparecircncia um pouco diferente mas

provavelmente possui a maioria destas peccedilas Um computador laptop possui peccedilas semelhantes

mas as combina em um uacutenico pacote do tamanho de um caderno

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2965

29

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Sistema de computador desktop

Unidade de sistema

A unidade de sistema (Gabinete) eacute o nuacutecleo de um sistema de computador Normalmente

eacute uma caixa retangular colocada sobre a mesa ou embaixo dela Dentro dessa caixa estatildeo os

componentes eletrocircnicos que processam as informaccedilotildees O mais importante desses

componentes eacute a CPU (unidade de processamento central) ou microprocessador que atua como

o ceacuterebro do computador Outro componente eacute a memoacuteria RAM que armazena

temporariamente informaccedilotildees utilizadas pela CPU enquanto o computador estaacute ligado As

informaccedilotildees gravadas na RAM satildeo apagadas quando o computador eacute desligado

Quase todas as outras partes do computador se conectam agrave unidade de sistema por meio

de cabos Os cabos satildeo conectados aportas (aberturas) especiacuteficas geralmente na parte traseira

da unidade de sistema O hardware que natildeo faz parte da unidade de sistema eacute

chamado dispositivo perifeacuterico ou simplesmente dispositivo

Unidade de sistema

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3065

30

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Armazenamento

O computador possui uma ou mais unidades de disco ou seja dispositivos que armazenam

informaccedilotildees em um disco de plaacutestico ou de metal O disco preserva as informaccedilotildees mesmo

quando o computador estaacute desligado

Unidade de disco riacutegido

A unidade de disco riacutegido do computador armazena informaccedilotildees em um disco riacutegido que eacute um

prato riacutegido ou pilha de pratos com uma superfiacutecie magneacutetica Como os discos riacutegidos podem

reter uma grande quantidade de informaccedilotildees normalmente eles funcionam como principal meio

de armazenamento do computador guardando praticamente todos os programas e arquivos Em

geral a unidade de disco riacutegido fica localizada dentro da unidade de sistema

Unidade de disco riacutegidoUnidades de CD e DVD

Hoje em dia quase todos os computadores vecircm equipados com uma unidade de CD ou DVD

geralmente localizada na frente da unidade de sistema As unidades de CD usam lasers para ler

(recuperar) dados de um CD Muitas delas tambeacutem podem gravar dados em CDs Se vocecirc tiver

uma unidade de disco gravaacutevel poderaacute armazenar coacutepias de seus arquivos em CDs vazios A

unidade de CD tambeacutem serve para tocar CDs de muacutesica no computador

CD

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3165

31

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

As unidades de DVD fazem o mesmo que as unidades de CD e tambeacutem lecircem DVDs Se vocecirc

tiver uma unidade de DVD poderaacute ver filmes no computador Muitas unidades de DVD podem

gravar dados em DVDs vazios

Dica

Se vocecirc tiver uma unidade de CD ou DVD gravaacutevel faccedila backup (copie) periodicamente de seus

arquivos importantes em CDs ou DVDs Dessa forma caso venha a ocorrer alguma falha no disco

riacutegido vocecirc natildeo perderaacute os dados

Unidade de disquete

As unidades de disquete armazenam informaccedilotildees em discos tambeacutem chamados discos

flexiacuteveis ou disquetes Comparado a CDs e DVDs os disquetes podem armazenar apenas uma

pequena quantidade de dados Eles tambeacutem recuperam informaccedilotildees de forma mais lenta e satildeo

mais vulneraacuteveis a danos Por esses motivos as unidades de disquete satildeo cada vez menosusadas embora ainda sejam incluiacutedas em alguns computadores

Disquete

Por que estes discos satildeo chamados de disquetes Apesar de a parte externa ser composta de

plaacutestico riacutegido isso eacute apenas a capa O interior do disco eacute feito de um material de vinil fino e

flexiacutevel

Mouse

Mouse eacute um pequeno dispositivo usado para apontar e selecionar itens na tela do computador

Embora existam mouses de vaacuterias formas o modelo mais comum se assemelha a um rato (como

diz o nome em inglecircs) Ele eacute pequeno e alongado sendo conectado agrave unidade de sistema por um

cabo comprido que faz lembrar uma cauda Alguns mouses mais novos satildeo sem fio

Mouse

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3265

32

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O mouse geralmente possui dois bototildees um botatildeo principal (normalmente o da esquerda) e um

botatildeo secundaacuterio Muitos mouses tambeacutem tecircm uma roda entre os dois bototildees que permite

percorrer as telas de informaccedilotildees

Ponteiros do mouse

Agrave medida que vocecirc move o mouse com a matildeo um ponteiro na tela se move na mesma direccedilatildeo

(A aparecircncia do ponteiro pode mudar dependendo da sua posiccedilatildeo na tela) Quando quiser

selecionar um item aponte para ele e clique no botatildeo principal ou seja pressione-o e solte-o

Apontar e clicar com o mouse eacute a principal maneira de interagir com o computador Para mais

informaccedilotildees consulte Usando o mouse

Teclado

A finalidade principal do teclado eacute digitar texto no computador Ele possui teclas para letras e

nuacutemeros exatamente como em uma maacutequina de escrever A diferenccedila estaacute nas teclas especiais

As teclas de funccedilatildeo localizadas na linha superior executam funccedilotildees diferentes dependendo

de onde satildeo usadas

O teclado numeacuterico localizado agrave direita na maioria dos teclados permite inserir nuacutemeros

rapidamente

As teclas de navegaccedilatildeo como as teclas de seta permitem mover sua posiccedilatildeo dentro de

documentos ou paacuteginas da Web

Teclado

Vocecirc tambeacutem pode usar o teclado para executar muitas das mesmas tarefas que executa com

um mouse Para mais informaccedilotildees consulte Usando o teclado

Monitor

O monitor exibe informaccedilotildees em forma visual usando texto e elementos graacuteficos A parte do

monitor que exibe as informaccedilotildees eacute chamada tela Como a tela de uma televisatildeo a tela de um

computador pode mostrar imagens paradas ou em movimento

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3365

33

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Existem dois tipos baacutesicos de monitores CRT (tubo de raios catoacutedicos) e LCD (viacutedeo de cristal

liacutequido) Ambos produzem imagens niacutetidas mas os monitores LCD levam vantagem por serem

mais finos e mais leves

Monitor LCD (agrave esquerda) monitor CRT (agrave direita)

Impressora

Uma impressora transfere dados de um computador para o papel Vocecirc natildeo precisa de

impressora para usar o computador mas se tiver uma poderaacute imprimir emails cartotildees convites

anuacutencios e outros materiais Muitas pessoas tambeacutem preferem imprimir suas fotos em casa

Os dois principais tipos de impressora satildeo a jato de tinta e a laser As impressoras a jato de tinta

satildeo as mais populares para uso domeacutestico Elas podem imprimir em preto e branco ou em cores

e produzem fotos de alta qualidade quando usadas com papel especial As impressoras a laser

satildeo mais raacutepidas e mais adequadas para uso intenso

Impressora a jato de tinta (agrave esquerda) impressora a laser (agrave direita)

Alto-falantes

Os alto-falantes satildeo usados para tocar som Eles podem vir embutidos na unidade de sistema ou

ser conectados com cabos Satildeo eles que permitem ouvir muacutesica e efeitos de som no computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3465

34

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Alto-falantes do computador

Modem

Para conectar o computador agrave Internet vocecirc precisa de um modem um dispositivo que envia e

recebe informaccedilotildees do computador por linha telefocircnica ou cabo de alta velocidade Agraves vezes os

modems vecircm embutidos na unidade de sistema mas os de alta velocidade normalmente satildeo

componentes separados

Modem a cabo

O QUE Eacute O SOFTWARE

O Software eacute uma aplicaccedilatildeo ou programa do computador escrita numa determinadalinguagem interpretaacutevel por uma determinada maacutequina (o processador de um computador ou

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3565

35

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

outro equipamento) e que permite executar determinadas tarefas para as quais o software foi

projetado Estes programas satildeo compostos por uma sequecircncia de instruccedilotildees (os comandos) e de

declaraccedilotildees de dados as quais satildeo armazenaacuteveis num meio digital

Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por um

computador com o objetivo de executar tarefas especiacuteficas Tambeacutem pode ser definido como

os programas que comandam o funcionamento de um computador

Em um computador o software eacute classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer

instruccedilotildees para o hardware O hardware eacute toda a parte fiacutesica que constitui o computador por

exemplo a CPU a memoacuteria e os dispositivos de entrada e saiacuteda O software eacute constituiacutedo por

todos os programas que existem para um referido sistema quer sejam produzidos pelo proacuteprio

utente ou pelo fabricante do computador

O termo inglecircs software foi usado pela primeira vez em 1958 em um artigo escrito pelo cientistaamericano John Wilder Tukey Foi tambeacutem ele o responsaacutevel por introduzir o termo bit para

designar diacutegito binaacuterio

Os softwares podem ser classificados como

SOFTWARE DE SISTEMA

Geralmente dividido em SISTEMAS OPERACIONAIS e PROGRAMAS UTILITAacuteRIOS Para

comeccedilar os Sist Operacionais satildeo de grande importacircncia pois eles nos datildeo a opccedilatildeo de dizer ao

computador o que ele deve fazer Dois exemplos bastante conhecidos do nosso puacuteblico satildeoo Mac o Windows e o Linux Os Programas utilitaacuterios geralmente satildeo softwares de menor porte

com funccedilotildees mais especificas tipo Verificaccedilatildeo de Disco Coacutepias de Seguranccedila entre outros

SOFTWARE APLICATIVO

Neste tipo de software se enquadram todos aqueles programas que satildeo utilizados na execuccedilatildeo

de tarefas especiacuteficas Posso citar vaacuterios exemplos mas os mais comuns satildeo os processadores

de texto como o Word que servem para trabalhar com os mais diversos tipos de textos emitir

etiquetas e fazer formulaacuterios as planilhas eletrocircnicas como o Excel satildeo poderosas ferramentas

de caacutelculos que facilitam tanto aquele trabalho aacuterduo de matemaacutetica fazer graacuteficos com real

representaccedilatildeo dos dados eacute uma coisa muito boa pra quem precisa e por uacuteltimo o que muitos

usam mas natildeo sabem o nome ao certo que satildeo os Browsers ou Navegadores softwares usados

para navegar na Web dentre eles os mais conhecidos atualmente satildeo Windows Internet

Explorer Firefox Google Chrome Opera e Safaacuteri

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3665

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3765

37

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

hoje eles satildeo bastante usados em situaccedilotildees de treinamentos de pessoas para enfrentar casos no

seu dia-a-dia

SOFTWARE DE JOGOS

Geralmente satildeo softwares relacionados a entretenimento para proporcionar lazer e diversatildeo

Dispotildeem de muitos recursos interativos e existem de todos os tipos desde estrateacutegias ateacute

simulaccedilotildees reais de muitas coisas como corridas (Need for Speed) ateacute mesmo de vida como o

Second Life

SOFTWARES ABERTOS

Satildeo aqueles que permitem que o usuaacuterio produza com liberdade e criatividade se classificam

nessa categoria aqueles softwares de apresentaccedilotildees bancos de dados e vaacuterios outros

Para fixar

Descreva uma definiccedilatildeo para os tipos de softwares

Software de Sistema_____________________________________________________________

Software Aplicativo ______________________________________________________________

Software de Linguagem __________________________________________________________

Software abertos _______________________________________________________________

Capiacutetulo 4 - Conceitos Baacutesicos de Banco de Dados

Segundo Korth um banco de dados ldquoeacute uma coleccedilatildeo de dados inter -relacionados

representando informaccedilotildees sobre um domiacutenio especiacuteficordquo ou seja sempre que for possiacutevel

agrupar informaccedilotildees que se relacionam e tratam de um mesmo assunto posso dizer que tenho

um banco de dados

Podemos exemplificar situaccedilotildees claacutessicas como uma lista telefocircnica um cataacutelogo de CDs ou um

sistema de controle de RH de uma empresa

Jaacute um sistema de gerenciamento de banco de dados (SGBD) eacute um software que possui

recursos capazes de manipular as informaccedilotildees do banco de dados e interagir com o usuaacuterio

Exemplos de SGBDs satildeo Oracle SQL Server DB2 PostgreSQL MySQL o proacuteprio Access ouParadox entre outros

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3865

38

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Por uacuteltimo temos que conceituar um sistema de banco de dados como o conjunto de quatro

componentes baacutesicos dados hardware software e usuaacuterios Date conceituou que ldquosistema de

bancos de dados pode ser considerado como uma sala de arquivos eletrocircnicardquo A Figura 1 ilustra

os componentes de um sistema de banco de dados

Componentes de um sistema de banco de dados

Os objetivos de um sistema de banco de dados satildeo o de isolar o usuaacuterio dos detalhes

internos do banco de dados (promover a abstraccedilatildeo de dados) e promover a independecircncia dos

dados em relaccedilatildeo agraves aplicaccedilotildees ou seja tornar independente da aplicaccedilatildeo a estrateacutegia de

acesso e a forma de armazenamento

Abstraccedilatildeo de dados

O sistema de banco de dados deve garantir uma visatildeo totalmente abstrata do banco de

dados para o usuaacuterio ou seja para o usuaacuterio do banco de dados pouco importa qual unidade de

armazenamento estaacute sendo usada para guardar seus dados contanto que os mesmos estejam

disponiacuteveis no momento necessaacuterio

Esta abstraccedilatildeo se daacute em trecircs niacuteveis (Figura 2) Niacutevel de visatildeo do usuaacuterio as partes do banco de dados que o usuaacuterio tem acesso de

acordo com a necessidade individual de cada usuaacuterio ou grupo de usuaacuterios

Niacutevel conceitual define quais os dados que estatildeo armazenados e qual o relacionamento

entre eles

Niacutevel fiacutesico eacute o niacutevel mais baixo de abstraccedilatildeo em que define efetivamente de que maneira

os dados estatildeo armazenados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3965

39

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 2 Niacuteveis de abstraccedilatildeo

Projeto de banco de dados

Todo bom sistema de banco de dados deve apresentar um projeto que visa a organizaccedilatildeo das

informaccedilotildees e utilizaccedilatildeo de teacutecnicas para que o futuro sistema obtenha boa performance e

tambeacutem facilite infinitamente as manutenccedilotildees que venham a acontecer

O projeto de banco de dados se daacute em duas fases

Modelagem conceitual Projeto loacutegico

Estas duas etapas se referem a um sistema de banco de dados ainda natildeo implementado ou seja

que ainda natildeo exista um novo projeto Para os casos em que o banco de dados jaacute exista mas eacute

um sistema legado por exemplo ou um sistema muito antigo sem documentaccedilatildeo o processo de

projeto de banco de dados se daraacute atraveacutes da utilizaccedilatildeo de uma teacutecnica chamada de Engenharia

Reversa que seraacute visto em outra oportunidade

Modelo conceitual

Eacute a descriccedilatildeo do BD de maneira independente ao SGBD ou seja define quais os dados

que apareceratildeo no BD mas sem se importar com a implementaccedilatildeo que se daraacute ao BD Desta

forma haacute uma abstraccedilatildeo em niacutevel de SGBD

Uma das teacutecnicas mais utilizadas dentre os profissionais da aacuterea eacute a abordagem entidade-

relacionamento (ER) onde o modelo eacute representado graficamente atraveacutes do diagrama entidade-

relacionamento (DER) (Figura 3)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 22: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2265

22

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Quanto AO TIPO DE ASSUNTO a que se refere agrave informaccedilatildeo

Esta pode ser como que etiquetada de modo a tornar faacutecil a sua procura e a evitar perdas

de tempo

Quando a informaccedilatildeo estaacute armazenada em ficheiros estes indicam o seu tipo atraveacutes de

uma extensatildeo ao nome do ficheiro

Algumas das extensotildees mais comuns satildeo

- COM ficheiro de comandos - BACK backup ou coacutepias de seguranccedila- EXE executaacuteveis - SYS ficheiros de sistema

- BAT processamento batch - XLS folha de caacutelculo provenientes do Excel

- TXT texto no formato ASCII - PPT apresentaccedilotildees provenientes do PowerPoint

- PAS programas em Linguagem Pascal - MBD base de dados provenientes do Access

- C programas em Linguagem C - DOC documentos provenientes de um processador de

texto

Quanto Agrave FORMA DE ARMAZENAMENTO da informaccedilatildeoRelativamente ao armazenamento por exemplo no disco riacutegido do computador a

informaccedilatildeo eacute organizada em diretorias cujo nome revela o tipo de ficheiros que aiacute se encontram

podendo cada diretorias conter diversas subdiretorias

Organizaccedilatildeo dos dados num Computador

Os dados que fornecemos a um computador para processar podem ser de trecircs tipos

quantitativos classificativos referenciais

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2365

23

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Dados quantitativos - satildeo os que exprimem quantidades e por isso normalmente servem

de base para caacutelculos aritmeacuteticos Exemplo a ficha escolar as notas do periacuteodo as faltas o total

das faltas

bull Dados classificativos - satildeo os que descrevem ou especificam os elementos envolvidos e

quantificados Normalmente servem de complemento aos dados quantitativos identificando

pessoas objetos situaccedilotildees etc Natildeo servem portanto para elementos de caacutelculo Exemplo a

ficha escolar o nome do aluno o nome da disciplina o nome do professor

bull Dados referenciais - satildeo dados que permitem controlar e referenciar os elementos

tratados Exemplo a ficha escolar o ano letivo o nuacutemero do aluno a turma

Para fixar

Escreva de forma resumida como podemos organizar os dados

_________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

Tipos de Operaccedilotildees realizadas sobre os dados

O tipo de operaccedilotildees efetuadas depende dos objetivos do processamento e igualmente dostipos de dados nele envolvidos pois o computador pode processar dados numeacutericos ou natildeo

numeacutericos Assim temos como operaccedilotildees possiacuteveis num processamento

bull Operaccedilotildees aritmeacuteticas - satildeo efetuadas apenas sobre dados numeacutericos e satildeo

basicamente constituiacutedas por somas subtraccedilotildees multiplicaccedilotildees divisotildees e outras similares

bull Operaccedilotildees loacutegicas - satildeo efetuadas sobre dados numeacutericos ou natildeo numeacutericos Estas

operaccedilotildees satildeo tambeacutem por vezes designadas por operaccedilotildees de comparaccedilatildeo

bull Operaccedilotildees de movimentaccedilatildeo interna - satildeo efetuadas sobre qualquer tipo de dados e

consistem na coacutepia e mudanccedila de localizaccedilatildeo interna dos dados na memoacuteria do computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2465

24

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Operaccedilatildeo de InputOutput - satildeo as operaccedilotildees que envolvem os oacutergatildeos de entrada e

saiacuteda permitindo a comunicaccedilatildeo entre o operador e a maacutequina

Funccedilotildees do processamento de dados

Considera-se como processamento de dados o conjunto de todas as operaccedilotildees efetuadas desde

a entrada dos dados ateacute agrave saiacuteda da informaccedilatildeo Todas estas operaccedilotildees de vaacuterios tipos satildeo

normalmente associadas a seis funccedilotildees do processamento de dados input ordenaccedilatildeo

processamento armazenamento output e controle

bull Input - fase de seleccedilatildeo e aquisiccedilatildeo dos dados pelo computador

bull Ordenaccedilatildeo - esta eacute uma funccedilatildeo auxiliar O seu objetivo eacute dispor os dados de uma forma

organizada (ordenada) de modo a facilitar o seu tratamento Se os dados se mantiverem

ordenados segundo um determinado criteacuterio preacute-definido a sua pesquisa eacute mais faacutecil o que faz

aumentar a velocidade do processamento

bull Processamento - considera-se processamento ao conjunto de todas as operaccedilotildees

efetuadas internamente pelo computador na manipulaccedilatildeo dos dados

bull Armazenamento - esta eacute uma funccedilatildeo muito importante que permite posteriormente

analisar as etapas e os resultados do processamento

bull Output - eacute a obtenccedilatildeo de resultados sob a forma de informaccedilatildeo significativa para as

pessoas a quem se destina

bull Controle - a sua finalidade eacute detectar corrigir e eliminar possiacuteveis erros ou afastamentosem relaccedilatildeo aos objetivos inicialmente traccedilados

Utilidade de um banco de dados

Um banco de dados permite pocircr dados agrave disposiccedilatildeo de usuaacuterios para uma consulta uma

introduccedilatildeo ou uma atualizaccedilatildeo assegurando-se dos direitos atribuiacutedos a estes uacuteltimos Isso eacute

ainda mais uacutetil quando os dados informaacuteticos satildeo cada vez mais numerosos

Um banco de dados pode ser local quer dizer utilizaacutevel em uma maacutequina por um usuaacuterio

ou repartida quer dizer que as informaccedilotildees satildeo armazenadas em maacutequinas distantes eacessiacuteveis por rede A vantagem essencial da utilizaccedilatildeo dos bancos de dados eacute a possibilidade

de poder ser acessada por vaacuterios usuaacuterios simultaneamente

A gestatildeo dos bancos de dados

A fim de poder controlar os dados bem como os usuaacuterios a necessidade de um sistema de

gestatildeo fez-se sentir rapidamente A gestatildeo do banco de dados faz-se graccedilas a um sistema

chamado SGBD (sistema de gestatildeo de bancos de dados) ou em inglecircs DBMS (Database

managment system) O SGBD eacute um conjunto de serviccedilos (aplicaccedilotildees software) que permitem

gerenciar os bancos de dados quer dizer

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2565

25

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Permitir o acesso aos dados de maneira simples

Autorizar um acesso agraves informaccedilotildees a muacuteltiplos usuaacuterios

Manipular os dados presentes no banco de dados (inserccedilatildeo supressatildeo modificaccedilatildeo)

O SGBD pode decompor-se em trecircs subsistemas

O sistema de gestatildeo de arquivos permite o armazenamento das informaccedilotildees num suporte

fiacutesico

O SGBD interno gerencia a emissatildeo das informaccedilotildees

O SGBD externo representa a interface com o usuaacuterio

Bancos de dados satildeo conjuntos de dados com uma estrutura regular que organizam

informaccedilatildeo Um banco de dados normalmente agrupa informaccedilotildees utilizadas para um mesmo fim

O modelo de dados mais adotado hoje em dia eacute o modelo relacional onde as estruturas

tecircm a forma de tabelas compostas por linhas e colunas

Resumindo um banco de dados eacute uma coleccedilatildeo de dados relacionados Entende-se por

dado toda a informaccedilatildeo que pode ser armazenada e que apresenta algum significado impliacutecito

dentro do contexto ao qual ele se aplica Por exemplo num sistema bancaacuterio uma pessoa eacuteidentificada pelo seu cpf(cliente) Em um sistema escolar a pessoa eacute identificada pelo seu nuacutemero

de matriacutecula(aluno) Aleacutem disso os dados que seratildeo armazenados em cada situaccedilatildeo podem

diferir consideravelmente

Atividades

1) Onde utilizar um banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2665

26

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2) Como funciona um sistema gerenciador de banco de dados

3) Como funciona o modelo relacional

Modelo Relacional

O modelo relacional eacute uma teoria matemaacutetica desenvolvida por Edgar Frank Codd para

descrever como as bases de dados devem funcionar Embora esta teoria seja a base para o

software de bases de dados relacionais muito poucos sistemas de gestatildeo de bases de dados

seguem o modelo de forma restrita e todos tecircm funcionalidades que violam a teoria desta forma

variando a complexidade e o poder A discussatildeo se esses bancos de dados merecem ser

chamados de relacional ficou esgotada com tempo com a evoluccedilatildeo dos bancos existentes

De acordo com a arquitetura ANSI SPARC em trecircs niacuteveis os Bancos de dados

relacionais consistem de trecircs componentes

bull uma coleccedilatildeo de estruturas de dados formalmente chamadas de relaccedilotildees ou

informalmente tabelas compondo o niacutevel conceitual

bull uma coleccedilatildeo dos operadores a aacutelgebra e o caacutelculo relacionais que constituem a base da

linguagem SQL

bull uma coleccedilatildeo de restriccedilotildees da integridade definindo o conjunto consistente de estados de

base de dados e de alteraccedilotildees de estados As restriccedilotildees de integridade podem ser de quatro

tipos

bull domiacutenio (ou tipo de dados) bull atributo

bull restriccedilotildees de base de dados

De acordo com o Princiacutepio de Informaccedilatildeo toda informaccedilatildeo tem de ser representada como dados

qualquer tipo de atributo representa relaccedilotildees entre conjuntos de dados

Nos bancos de dados relacionais os relacionamentos entre as tabelas natildeo satildeo codificados

explicitamente na sua definiccedilatildeo Em vez disso se fazem implicitamente pela presenccedila de

atributos chave As bases de dados relacionais permitem aos utilizadores (incluindo

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2765

27

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

programadores) escreverem consultas (queries) reorganizando e utilizando os dados de forma

flexiacutevel e natildeo necessariamente antecipada pelos projetistas originais

Esta flexibilidade eacute especialmente importante em bases de dados que podem ser utilizadas

durante deacutecadas tornando as bases de dados relacionais muito populares no meio comercial

Um dos pontos fortes do modelo relacional de banco de dados eacute a possibilidade de

definiccedilatildeo de um conjunto de restriccedilotildees de integridade Estas definem os conjuntos de estados e

mudanccedilas de estado consistentes do banco de dados determinando os valores que podem e os

que natildeo podem ser armazenados

Aplicaccedilotildees de bancos de dados

Bancos de dados satildeo usados em muitas aplicaccedilotildees enquanto atravessando virtualmente a

gama inteira de software de computador Bancos de dados eacute o meacutetodo preferido de

armazenamento para aplicaccedilotildees multiusuaacuterias grandes onde a coordenaccedilatildeo entre muitosusuaacuterios eacute necessaacuteria Ateacute mesmo usuaacuterios individuais os acham convenientes entretanto e

muitos programas de correio eletrocircnico e os organizadores pessoais estatildeo baseados em

tecnologia de banco de dados standard

Aplicativo de Banco de Dados

Um aplicativo de banco de dados eacute um tipo de software exclusivo para gerenciar um banco

de dados Aplicativos de banco de dados abrangem uma vasta variedade de necessidades e

objetivos de pequenas ferramentas como uma agenda ateacute complexos sistemas empresariaispara desempenhar tarefas como a contabilidade

O termo Aplicativo de Banco de dados usualmente se refere a softwares que oferecem

uma interface para o banco de dados Exemplos de aplicativos de banco de dados satildeo Microsoft

Visual FoxPro Microsoft Access dBASE FileMaker (em certa medida) HyperCard MySQL

PostgreSQL Microsoft SQL Server e Oracle

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2865

28

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Capiacutetulo 3 - HARDWARE E SOFTWARE

O QUE Eacute O HARDWARE

No acircmbito da informaacutetica eacute dada a designaccedilatildeo de hardware a todos os componentes

fiacutesicos que fazem parte de um sistema informaacutetico incluiacutedo toda a parte fiacutesica de um computador

(nomeadamente os processadores motherbord disco riacutegido placas de som placas de viacutedeo

memoacuterias etc) e todos os perifeacutericos (tais como teclados mouse monitores impressoras

scanners modems entre outros)

Peccedilas de um computador

Se vocecirc usa um computador desktop jaacute deve saber que natildeo existe uma parte uacutenica

chamada computador Um computador eacute na verdade um sistema de muitas partes funcionando

em conjunto As partes fiacutesicas que vocecirc pode ver e tocar satildeo denominadas

coletivamente hardware (O software por outro lado se refere agraves instruccedilotildees ou programas que

dizem ao hardware o que fazer)

A ilustraccedilatildeo a seguir mostra os dispositivos de hardware mais comuns em um sistema de

computador desktop Seu sistema pode ter uma aparecircncia um pouco diferente mas

provavelmente possui a maioria destas peccedilas Um computador laptop possui peccedilas semelhantes

mas as combina em um uacutenico pacote do tamanho de um caderno

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2965

29

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Sistema de computador desktop

Unidade de sistema

A unidade de sistema (Gabinete) eacute o nuacutecleo de um sistema de computador Normalmente

eacute uma caixa retangular colocada sobre a mesa ou embaixo dela Dentro dessa caixa estatildeo os

componentes eletrocircnicos que processam as informaccedilotildees O mais importante desses

componentes eacute a CPU (unidade de processamento central) ou microprocessador que atua como

o ceacuterebro do computador Outro componente eacute a memoacuteria RAM que armazena

temporariamente informaccedilotildees utilizadas pela CPU enquanto o computador estaacute ligado As

informaccedilotildees gravadas na RAM satildeo apagadas quando o computador eacute desligado

Quase todas as outras partes do computador se conectam agrave unidade de sistema por meio

de cabos Os cabos satildeo conectados aportas (aberturas) especiacuteficas geralmente na parte traseira

da unidade de sistema O hardware que natildeo faz parte da unidade de sistema eacute

chamado dispositivo perifeacuterico ou simplesmente dispositivo

Unidade de sistema

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3065

30

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Armazenamento

O computador possui uma ou mais unidades de disco ou seja dispositivos que armazenam

informaccedilotildees em um disco de plaacutestico ou de metal O disco preserva as informaccedilotildees mesmo

quando o computador estaacute desligado

Unidade de disco riacutegido

A unidade de disco riacutegido do computador armazena informaccedilotildees em um disco riacutegido que eacute um

prato riacutegido ou pilha de pratos com uma superfiacutecie magneacutetica Como os discos riacutegidos podem

reter uma grande quantidade de informaccedilotildees normalmente eles funcionam como principal meio

de armazenamento do computador guardando praticamente todos os programas e arquivos Em

geral a unidade de disco riacutegido fica localizada dentro da unidade de sistema

Unidade de disco riacutegidoUnidades de CD e DVD

Hoje em dia quase todos os computadores vecircm equipados com uma unidade de CD ou DVD

geralmente localizada na frente da unidade de sistema As unidades de CD usam lasers para ler

(recuperar) dados de um CD Muitas delas tambeacutem podem gravar dados em CDs Se vocecirc tiver

uma unidade de disco gravaacutevel poderaacute armazenar coacutepias de seus arquivos em CDs vazios A

unidade de CD tambeacutem serve para tocar CDs de muacutesica no computador

CD

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3165

31

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

As unidades de DVD fazem o mesmo que as unidades de CD e tambeacutem lecircem DVDs Se vocecirc

tiver uma unidade de DVD poderaacute ver filmes no computador Muitas unidades de DVD podem

gravar dados em DVDs vazios

Dica

Se vocecirc tiver uma unidade de CD ou DVD gravaacutevel faccedila backup (copie) periodicamente de seus

arquivos importantes em CDs ou DVDs Dessa forma caso venha a ocorrer alguma falha no disco

riacutegido vocecirc natildeo perderaacute os dados

Unidade de disquete

As unidades de disquete armazenam informaccedilotildees em discos tambeacutem chamados discos

flexiacuteveis ou disquetes Comparado a CDs e DVDs os disquetes podem armazenar apenas uma

pequena quantidade de dados Eles tambeacutem recuperam informaccedilotildees de forma mais lenta e satildeo

mais vulneraacuteveis a danos Por esses motivos as unidades de disquete satildeo cada vez menosusadas embora ainda sejam incluiacutedas em alguns computadores

Disquete

Por que estes discos satildeo chamados de disquetes Apesar de a parte externa ser composta de

plaacutestico riacutegido isso eacute apenas a capa O interior do disco eacute feito de um material de vinil fino e

flexiacutevel

Mouse

Mouse eacute um pequeno dispositivo usado para apontar e selecionar itens na tela do computador

Embora existam mouses de vaacuterias formas o modelo mais comum se assemelha a um rato (como

diz o nome em inglecircs) Ele eacute pequeno e alongado sendo conectado agrave unidade de sistema por um

cabo comprido que faz lembrar uma cauda Alguns mouses mais novos satildeo sem fio

Mouse

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3265

32

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O mouse geralmente possui dois bototildees um botatildeo principal (normalmente o da esquerda) e um

botatildeo secundaacuterio Muitos mouses tambeacutem tecircm uma roda entre os dois bototildees que permite

percorrer as telas de informaccedilotildees

Ponteiros do mouse

Agrave medida que vocecirc move o mouse com a matildeo um ponteiro na tela se move na mesma direccedilatildeo

(A aparecircncia do ponteiro pode mudar dependendo da sua posiccedilatildeo na tela) Quando quiser

selecionar um item aponte para ele e clique no botatildeo principal ou seja pressione-o e solte-o

Apontar e clicar com o mouse eacute a principal maneira de interagir com o computador Para mais

informaccedilotildees consulte Usando o mouse

Teclado

A finalidade principal do teclado eacute digitar texto no computador Ele possui teclas para letras e

nuacutemeros exatamente como em uma maacutequina de escrever A diferenccedila estaacute nas teclas especiais

As teclas de funccedilatildeo localizadas na linha superior executam funccedilotildees diferentes dependendo

de onde satildeo usadas

O teclado numeacuterico localizado agrave direita na maioria dos teclados permite inserir nuacutemeros

rapidamente

As teclas de navegaccedilatildeo como as teclas de seta permitem mover sua posiccedilatildeo dentro de

documentos ou paacuteginas da Web

Teclado

Vocecirc tambeacutem pode usar o teclado para executar muitas das mesmas tarefas que executa com

um mouse Para mais informaccedilotildees consulte Usando o teclado

Monitor

O monitor exibe informaccedilotildees em forma visual usando texto e elementos graacuteficos A parte do

monitor que exibe as informaccedilotildees eacute chamada tela Como a tela de uma televisatildeo a tela de um

computador pode mostrar imagens paradas ou em movimento

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3365

33

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Existem dois tipos baacutesicos de monitores CRT (tubo de raios catoacutedicos) e LCD (viacutedeo de cristal

liacutequido) Ambos produzem imagens niacutetidas mas os monitores LCD levam vantagem por serem

mais finos e mais leves

Monitor LCD (agrave esquerda) monitor CRT (agrave direita)

Impressora

Uma impressora transfere dados de um computador para o papel Vocecirc natildeo precisa de

impressora para usar o computador mas se tiver uma poderaacute imprimir emails cartotildees convites

anuacutencios e outros materiais Muitas pessoas tambeacutem preferem imprimir suas fotos em casa

Os dois principais tipos de impressora satildeo a jato de tinta e a laser As impressoras a jato de tinta

satildeo as mais populares para uso domeacutestico Elas podem imprimir em preto e branco ou em cores

e produzem fotos de alta qualidade quando usadas com papel especial As impressoras a laser

satildeo mais raacutepidas e mais adequadas para uso intenso

Impressora a jato de tinta (agrave esquerda) impressora a laser (agrave direita)

Alto-falantes

Os alto-falantes satildeo usados para tocar som Eles podem vir embutidos na unidade de sistema ou

ser conectados com cabos Satildeo eles que permitem ouvir muacutesica e efeitos de som no computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3465

34

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Alto-falantes do computador

Modem

Para conectar o computador agrave Internet vocecirc precisa de um modem um dispositivo que envia e

recebe informaccedilotildees do computador por linha telefocircnica ou cabo de alta velocidade Agraves vezes os

modems vecircm embutidos na unidade de sistema mas os de alta velocidade normalmente satildeo

componentes separados

Modem a cabo

O QUE Eacute O SOFTWARE

O Software eacute uma aplicaccedilatildeo ou programa do computador escrita numa determinadalinguagem interpretaacutevel por uma determinada maacutequina (o processador de um computador ou

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3565

35

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

outro equipamento) e que permite executar determinadas tarefas para as quais o software foi

projetado Estes programas satildeo compostos por uma sequecircncia de instruccedilotildees (os comandos) e de

declaraccedilotildees de dados as quais satildeo armazenaacuteveis num meio digital

Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por um

computador com o objetivo de executar tarefas especiacuteficas Tambeacutem pode ser definido como

os programas que comandam o funcionamento de um computador

Em um computador o software eacute classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer

instruccedilotildees para o hardware O hardware eacute toda a parte fiacutesica que constitui o computador por

exemplo a CPU a memoacuteria e os dispositivos de entrada e saiacuteda O software eacute constituiacutedo por

todos os programas que existem para um referido sistema quer sejam produzidos pelo proacuteprio

utente ou pelo fabricante do computador

O termo inglecircs software foi usado pela primeira vez em 1958 em um artigo escrito pelo cientistaamericano John Wilder Tukey Foi tambeacutem ele o responsaacutevel por introduzir o termo bit para

designar diacutegito binaacuterio

Os softwares podem ser classificados como

SOFTWARE DE SISTEMA

Geralmente dividido em SISTEMAS OPERACIONAIS e PROGRAMAS UTILITAacuteRIOS Para

comeccedilar os Sist Operacionais satildeo de grande importacircncia pois eles nos datildeo a opccedilatildeo de dizer ao

computador o que ele deve fazer Dois exemplos bastante conhecidos do nosso puacuteblico satildeoo Mac o Windows e o Linux Os Programas utilitaacuterios geralmente satildeo softwares de menor porte

com funccedilotildees mais especificas tipo Verificaccedilatildeo de Disco Coacutepias de Seguranccedila entre outros

SOFTWARE APLICATIVO

Neste tipo de software se enquadram todos aqueles programas que satildeo utilizados na execuccedilatildeo

de tarefas especiacuteficas Posso citar vaacuterios exemplos mas os mais comuns satildeo os processadores

de texto como o Word que servem para trabalhar com os mais diversos tipos de textos emitir

etiquetas e fazer formulaacuterios as planilhas eletrocircnicas como o Excel satildeo poderosas ferramentas

de caacutelculos que facilitam tanto aquele trabalho aacuterduo de matemaacutetica fazer graacuteficos com real

representaccedilatildeo dos dados eacute uma coisa muito boa pra quem precisa e por uacuteltimo o que muitos

usam mas natildeo sabem o nome ao certo que satildeo os Browsers ou Navegadores softwares usados

para navegar na Web dentre eles os mais conhecidos atualmente satildeo Windows Internet

Explorer Firefox Google Chrome Opera e Safaacuteri

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3665

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3765

37

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

hoje eles satildeo bastante usados em situaccedilotildees de treinamentos de pessoas para enfrentar casos no

seu dia-a-dia

SOFTWARE DE JOGOS

Geralmente satildeo softwares relacionados a entretenimento para proporcionar lazer e diversatildeo

Dispotildeem de muitos recursos interativos e existem de todos os tipos desde estrateacutegias ateacute

simulaccedilotildees reais de muitas coisas como corridas (Need for Speed) ateacute mesmo de vida como o

Second Life

SOFTWARES ABERTOS

Satildeo aqueles que permitem que o usuaacuterio produza com liberdade e criatividade se classificam

nessa categoria aqueles softwares de apresentaccedilotildees bancos de dados e vaacuterios outros

Para fixar

Descreva uma definiccedilatildeo para os tipos de softwares

Software de Sistema_____________________________________________________________

Software Aplicativo ______________________________________________________________

Software de Linguagem __________________________________________________________

Software abertos _______________________________________________________________

Capiacutetulo 4 - Conceitos Baacutesicos de Banco de Dados

Segundo Korth um banco de dados ldquoeacute uma coleccedilatildeo de dados inter -relacionados

representando informaccedilotildees sobre um domiacutenio especiacuteficordquo ou seja sempre que for possiacutevel

agrupar informaccedilotildees que se relacionam e tratam de um mesmo assunto posso dizer que tenho

um banco de dados

Podemos exemplificar situaccedilotildees claacutessicas como uma lista telefocircnica um cataacutelogo de CDs ou um

sistema de controle de RH de uma empresa

Jaacute um sistema de gerenciamento de banco de dados (SGBD) eacute um software que possui

recursos capazes de manipular as informaccedilotildees do banco de dados e interagir com o usuaacuterio

Exemplos de SGBDs satildeo Oracle SQL Server DB2 PostgreSQL MySQL o proacuteprio Access ouParadox entre outros

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3865

38

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Por uacuteltimo temos que conceituar um sistema de banco de dados como o conjunto de quatro

componentes baacutesicos dados hardware software e usuaacuterios Date conceituou que ldquosistema de

bancos de dados pode ser considerado como uma sala de arquivos eletrocircnicardquo A Figura 1 ilustra

os componentes de um sistema de banco de dados

Componentes de um sistema de banco de dados

Os objetivos de um sistema de banco de dados satildeo o de isolar o usuaacuterio dos detalhes

internos do banco de dados (promover a abstraccedilatildeo de dados) e promover a independecircncia dos

dados em relaccedilatildeo agraves aplicaccedilotildees ou seja tornar independente da aplicaccedilatildeo a estrateacutegia de

acesso e a forma de armazenamento

Abstraccedilatildeo de dados

O sistema de banco de dados deve garantir uma visatildeo totalmente abstrata do banco de

dados para o usuaacuterio ou seja para o usuaacuterio do banco de dados pouco importa qual unidade de

armazenamento estaacute sendo usada para guardar seus dados contanto que os mesmos estejam

disponiacuteveis no momento necessaacuterio

Esta abstraccedilatildeo se daacute em trecircs niacuteveis (Figura 2) Niacutevel de visatildeo do usuaacuterio as partes do banco de dados que o usuaacuterio tem acesso de

acordo com a necessidade individual de cada usuaacuterio ou grupo de usuaacuterios

Niacutevel conceitual define quais os dados que estatildeo armazenados e qual o relacionamento

entre eles

Niacutevel fiacutesico eacute o niacutevel mais baixo de abstraccedilatildeo em que define efetivamente de que maneira

os dados estatildeo armazenados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3965

39

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 2 Niacuteveis de abstraccedilatildeo

Projeto de banco de dados

Todo bom sistema de banco de dados deve apresentar um projeto que visa a organizaccedilatildeo das

informaccedilotildees e utilizaccedilatildeo de teacutecnicas para que o futuro sistema obtenha boa performance e

tambeacutem facilite infinitamente as manutenccedilotildees que venham a acontecer

O projeto de banco de dados se daacute em duas fases

Modelagem conceitual Projeto loacutegico

Estas duas etapas se referem a um sistema de banco de dados ainda natildeo implementado ou seja

que ainda natildeo exista um novo projeto Para os casos em que o banco de dados jaacute exista mas eacute

um sistema legado por exemplo ou um sistema muito antigo sem documentaccedilatildeo o processo de

projeto de banco de dados se daraacute atraveacutes da utilizaccedilatildeo de uma teacutecnica chamada de Engenharia

Reversa que seraacute visto em outra oportunidade

Modelo conceitual

Eacute a descriccedilatildeo do BD de maneira independente ao SGBD ou seja define quais os dados

que apareceratildeo no BD mas sem se importar com a implementaccedilatildeo que se daraacute ao BD Desta

forma haacute uma abstraccedilatildeo em niacutevel de SGBD

Uma das teacutecnicas mais utilizadas dentre os profissionais da aacuterea eacute a abordagem entidade-

relacionamento (ER) onde o modelo eacute representado graficamente atraveacutes do diagrama entidade-

relacionamento (DER) (Figura 3)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 23: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2365

23

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Dados quantitativos - satildeo os que exprimem quantidades e por isso normalmente servem

de base para caacutelculos aritmeacuteticos Exemplo a ficha escolar as notas do periacuteodo as faltas o total

das faltas

bull Dados classificativos - satildeo os que descrevem ou especificam os elementos envolvidos e

quantificados Normalmente servem de complemento aos dados quantitativos identificando

pessoas objetos situaccedilotildees etc Natildeo servem portanto para elementos de caacutelculo Exemplo a

ficha escolar o nome do aluno o nome da disciplina o nome do professor

bull Dados referenciais - satildeo dados que permitem controlar e referenciar os elementos

tratados Exemplo a ficha escolar o ano letivo o nuacutemero do aluno a turma

Para fixar

Escreva de forma resumida como podemos organizar os dados

_________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________ ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

Tipos de Operaccedilotildees realizadas sobre os dados

O tipo de operaccedilotildees efetuadas depende dos objetivos do processamento e igualmente dostipos de dados nele envolvidos pois o computador pode processar dados numeacutericos ou natildeo

numeacutericos Assim temos como operaccedilotildees possiacuteveis num processamento

bull Operaccedilotildees aritmeacuteticas - satildeo efetuadas apenas sobre dados numeacutericos e satildeo

basicamente constituiacutedas por somas subtraccedilotildees multiplicaccedilotildees divisotildees e outras similares

bull Operaccedilotildees loacutegicas - satildeo efetuadas sobre dados numeacutericos ou natildeo numeacutericos Estas

operaccedilotildees satildeo tambeacutem por vezes designadas por operaccedilotildees de comparaccedilatildeo

bull Operaccedilotildees de movimentaccedilatildeo interna - satildeo efetuadas sobre qualquer tipo de dados e

consistem na coacutepia e mudanccedila de localizaccedilatildeo interna dos dados na memoacuteria do computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2465

24

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Operaccedilatildeo de InputOutput - satildeo as operaccedilotildees que envolvem os oacutergatildeos de entrada e

saiacuteda permitindo a comunicaccedilatildeo entre o operador e a maacutequina

Funccedilotildees do processamento de dados

Considera-se como processamento de dados o conjunto de todas as operaccedilotildees efetuadas desde

a entrada dos dados ateacute agrave saiacuteda da informaccedilatildeo Todas estas operaccedilotildees de vaacuterios tipos satildeo

normalmente associadas a seis funccedilotildees do processamento de dados input ordenaccedilatildeo

processamento armazenamento output e controle

bull Input - fase de seleccedilatildeo e aquisiccedilatildeo dos dados pelo computador

bull Ordenaccedilatildeo - esta eacute uma funccedilatildeo auxiliar O seu objetivo eacute dispor os dados de uma forma

organizada (ordenada) de modo a facilitar o seu tratamento Se os dados se mantiverem

ordenados segundo um determinado criteacuterio preacute-definido a sua pesquisa eacute mais faacutecil o que faz

aumentar a velocidade do processamento

bull Processamento - considera-se processamento ao conjunto de todas as operaccedilotildees

efetuadas internamente pelo computador na manipulaccedilatildeo dos dados

bull Armazenamento - esta eacute uma funccedilatildeo muito importante que permite posteriormente

analisar as etapas e os resultados do processamento

bull Output - eacute a obtenccedilatildeo de resultados sob a forma de informaccedilatildeo significativa para as

pessoas a quem se destina

bull Controle - a sua finalidade eacute detectar corrigir e eliminar possiacuteveis erros ou afastamentosem relaccedilatildeo aos objetivos inicialmente traccedilados

Utilidade de um banco de dados

Um banco de dados permite pocircr dados agrave disposiccedilatildeo de usuaacuterios para uma consulta uma

introduccedilatildeo ou uma atualizaccedilatildeo assegurando-se dos direitos atribuiacutedos a estes uacuteltimos Isso eacute

ainda mais uacutetil quando os dados informaacuteticos satildeo cada vez mais numerosos

Um banco de dados pode ser local quer dizer utilizaacutevel em uma maacutequina por um usuaacuterio

ou repartida quer dizer que as informaccedilotildees satildeo armazenadas em maacutequinas distantes eacessiacuteveis por rede A vantagem essencial da utilizaccedilatildeo dos bancos de dados eacute a possibilidade

de poder ser acessada por vaacuterios usuaacuterios simultaneamente

A gestatildeo dos bancos de dados

A fim de poder controlar os dados bem como os usuaacuterios a necessidade de um sistema de

gestatildeo fez-se sentir rapidamente A gestatildeo do banco de dados faz-se graccedilas a um sistema

chamado SGBD (sistema de gestatildeo de bancos de dados) ou em inglecircs DBMS (Database

managment system) O SGBD eacute um conjunto de serviccedilos (aplicaccedilotildees software) que permitem

gerenciar os bancos de dados quer dizer

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2565

25

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Permitir o acesso aos dados de maneira simples

Autorizar um acesso agraves informaccedilotildees a muacuteltiplos usuaacuterios

Manipular os dados presentes no banco de dados (inserccedilatildeo supressatildeo modificaccedilatildeo)

O SGBD pode decompor-se em trecircs subsistemas

O sistema de gestatildeo de arquivos permite o armazenamento das informaccedilotildees num suporte

fiacutesico

O SGBD interno gerencia a emissatildeo das informaccedilotildees

O SGBD externo representa a interface com o usuaacuterio

Bancos de dados satildeo conjuntos de dados com uma estrutura regular que organizam

informaccedilatildeo Um banco de dados normalmente agrupa informaccedilotildees utilizadas para um mesmo fim

O modelo de dados mais adotado hoje em dia eacute o modelo relacional onde as estruturas

tecircm a forma de tabelas compostas por linhas e colunas

Resumindo um banco de dados eacute uma coleccedilatildeo de dados relacionados Entende-se por

dado toda a informaccedilatildeo que pode ser armazenada e que apresenta algum significado impliacutecito

dentro do contexto ao qual ele se aplica Por exemplo num sistema bancaacuterio uma pessoa eacuteidentificada pelo seu cpf(cliente) Em um sistema escolar a pessoa eacute identificada pelo seu nuacutemero

de matriacutecula(aluno) Aleacutem disso os dados que seratildeo armazenados em cada situaccedilatildeo podem

diferir consideravelmente

Atividades

1) Onde utilizar um banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2665

26

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2) Como funciona um sistema gerenciador de banco de dados

3) Como funciona o modelo relacional

Modelo Relacional

O modelo relacional eacute uma teoria matemaacutetica desenvolvida por Edgar Frank Codd para

descrever como as bases de dados devem funcionar Embora esta teoria seja a base para o

software de bases de dados relacionais muito poucos sistemas de gestatildeo de bases de dados

seguem o modelo de forma restrita e todos tecircm funcionalidades que violam a teoria desta forma

variando a complexidade e o poder A discussatildeo se esses bancos de dados merecem ser

chamados de relacional ficou esgotada com tempo com a evoluccedilatildeo dos bancos existentes

De acordo com a arquitetura ANSI SPARC em trecircs niacuteveis os Bancos de dados

relacionais consistem de trecircs componentes

bull uma coleccedilatildeo de estruturas de dados formalmente chamadas de relaccedilotildees ou

informalmente tabelas compondo o niacutevel conceitual

bull uma coleccedilatildeo dos operadores a aacutelgebra e o caacutelculo relacionais que constituem a base da

linguagem SQL

bull uma coleccedilatildeo de restriccedilotildees da integridade definindo o conjunto consistente de estados de

base de dados e de alteraccedilotildees de estados As restriccedilotildees de integridade podem ser de quatro

tipos

bull domiacutenio (ou tipo de dados) bull atributo

bull restriccedilotildees de base de dados

De acordo com o Princiacutepio de Informaccedilatildeo toda informaccedilatildeo tem de ser representada como dados

qualquer tipo de atributo representa relaccedilotildees entre conjuntos de dados

Nos bancos de dados relacionais os relacionamentos entre as tabelas natildeo satildeo codificados

explicitamente na sua definiccedilatildeo Em vez disso se fazem implicitamente pela presenccedila de

atributos chave As bases de dados relacionais permitem aos utilizadores (incluindo

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2765

27

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

programadores) escreverem consultas (queries) reorganizando e utilizando os dados de forma

flexiacutevel e natildeo necessariamente antecipada pelos projetistas originais

Esta flexibilidade eacute especialmente importante em bases de dados que podem ser utilizadas

durante deacutecadas tornando as bases de dados relacionais muito populares no meio comercial

Um dos pontos fortes do modelo relacional de banco de dados eacute a possibilidade de

definiccedilatildeo de um conjunto de restriccedilotildees de integridade Estas definem os conjuntos de estados e

mudanccedilas de estado consistentes do banco de dados determinando os valores que podem e os

que natildeo podem ser armazenados

Aplicaccedilotildees de bancos de dados

Bancos de dados satildeo usados em muitas aplicaccedilotildees enquanto atravessando virtualmente a

gama inteira de software de computador Bancos de dados eacute o meacutetodo preferido de

armazenamento para aplicaccedilotildees multiusuaacuterias grandes onde a coordenaccedilatildeo entre muitosusuaacuterios eacute necessaacuteria Ateacute mesmo usuaacuterios individuais os acham convenientes entretanto e

muitos programas de correio eletrocircnico e os organizadores pessoais estatildeo baseados em

tecnologia de banco de dados standard

Aplicativo de Banco de Dados

Um aplicativo de banco de dados eacute um tipo de software exclusivo para gerenciar um banco

de dados Aplicativos de banco de dados abrangem uma vasta variedade de necessidades e

objetivos de pequenas ferramentas como uma agenda ateacute complexos sistemas empresariaispara desempenhar tarefas como a contabilidade

O termo Aplicativo de Banco de dados usualmente se refere a softwares que oferecem

uma interface para o banco de dados Exemplos de aplicativos de banco de dados satildeo Microsoft

Visual FoxPro Microsoft Access dBASE FileMaker (em certa medida) HyperCard MySQL

PostgreSQL Microsoft SQL Server e Oracle

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2865

28

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Capiacutetulo 3 - HARDWARE E SOFTWARE

O QUE Eacute O HARDWARE

No acircmbito da informaacutetica eacute dada a designaccedilatildeo de hardware a todos os componentes

fiacutesicos que fazem parte de um sistema informaacutetico incluiacutedo toda a parte fiacutesica de um computador

(nomeadamente os processadores motherbord disco riacutegido placas de som placas de viacutedeo

memoacuterias etc) e todos os perifeacutericos (tais como teclados mouse monitores impressoras

scanners modems entre outros)

Peccedilas de um computador

Se vocecirc usa um computador desktop jaacute deve saber que natildeo existe uma parte uacutenica

chamada computador Um computador eacute na verdade um sistema de muitas partes funcionando

em conjunto As partes fiacutesicas que vocecirc pode ver e tocar satildeo denominadas

coletivamente hardware (O software por outro lado se refere agraves instruccedilotildees ou programas que

dizem ao hardware o que fazer)

A ilustraccedilatildeo a seguir mostra os dispositivos de hardware mais comuns em um sistema de

computador desktop Seu sistema pode ter uma aparecircncia um pouco diferente mas

provavelmente possui a maioria destas peccedilas Um computador laptop possui peccedilas semelhantes

mas as combina em um uacutenico pacote do tamanho de um caderno

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2965

29

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Sistema de computador desktop

Unidade de sistema

A unidade de sistema (Gabinete) eacute o nuacutecleo de um sistema de computador Normalmente

eacute uma caixa retangular colocada sobre a mesa ou embaixo dela Dentro dessa caixa estatildeo os

componentes eletrocircnicos que processam as informaccedilotildees O mais importante desses

componentes eacute a CPU (unidade de processamento central) ou microprocessador que atua como

o ceacuterebro do computador Outro componente eacute a memoacuteria RAM que armazena

temporariamente informaccedilotildees utilizadas pela CPU enquanto o computador estaacute ligado As

informaccedilotildees gravadas na RAM satildeo apagadas quando o computador eacute desligado

Quase todas as outras partes do computador se conectam agrave unidade de sistema por meio

de cabos Os cabos satildeo conectados aportas (aberturas) especiacuteficas geralmente na parte traseira

da unidade de sistema O hardware que natildeo faz parte da unidade de sistema eacute

chamado dispositivo perifeacuterico ou simplesmente dispositivo

Unidade de sistema

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3065

30

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Armazenamento

O computador possui uma ou mais unidades de disco ou seja dispositivos que armazenam

informaccedilotildees em um disco de plaacutestico ou de metal O disco preserva as informaccedilotildees mesmo

quando o computador estaacute desligado

Unidade de disco riacutegido

A unidade de disco riacutegido do computador armazena informaccedilotildees em um disco riacutegido que eacute um

prato riacutegido ou pilha de pratos com uma superfiacutecie magneacutetica Como os discos riacutegidos podem

reter uma grande quantidade de informaccedilotildees normalmente eles funcionam como principal meio

de armazenamento do computador guardando praticamente todos os programas e arquivos Em

geral a unidade de disco riacutegido fica localizada dentro da unidade de sistema

Unidade de disco riacutegidoUnidades de CD e DVD

Hoje em dia quase todos os computadores vecircm equipados com uma unidade de CD ou DVD

geralmente localizada na frente da unidade de sistema As unidades de CD usam lasers para ler

(recuperar) dados de um CD Muitas delas tambeacutem podem gravar dados em CDs Se vocecirc tiver

uma unidade de disco gravaacutevel poderaacute armazenar coacutepias de seus arquivos em CDs vazios A

unidade de CD tambeacutem serve para tocar CDs de muacutesica no computador

CD

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3165

31

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

As unidades de DVD fazem o mesmo que as unidades de CD e tambeacutem lecircem DVDs Se vocecirc

tiver uma unidade de DVD poderaacute ver filmes no computador Muitas unidades de DVD podem

gravar dados em DVDs vazios

Dica

Se vocecirc tiver uma unidade de CD ou DVD gravaacutevel faccedila backup (copie) periodicamente de seus

arquivos importantes em CDs ou DVDs Dessa forma caso venha a ocorrer alguma falha no disco

riacutegido vocecirc natildeo perderaacute os dados

Unidade de disquete

As unidades de disquete armazenam informaccedilotildees em discos tambeacutem chamados discos

flexiacuteveis ou disquetes Comparado a CDs e DVDs os disquetes podem armazenar apenas uma

pequena quantidade de dados Eles tambeacutem recuperam informaccedilotildees de forma mais lenta e satildeo

mais vulneraacuteveis a danos Por esses motivos as unidades de disquete satildeo cada vez menosusadas embora ainda sejam incluiacutedas em alguns computadores

Disquete

Por que estes discos satildeo chamados de disquetes Apesar de a parte externa ser composta de

plaacutestico riacutegido isso eacute apenas a capa O interior do disco eacute feito de um material de vinil fino e

flexiacutevel

Mouse

Mouse eacute um pequeno dispositivo usado para apontar e selecionar itens na tela do computador

Embora existam mouses de vaacuterias formas o modelo mais comum se assemelha a um rato (como

diz o nome em inglecircs) Ele eacute pequeno e alongado sendo conectado agrave unidade de sistema por um

cabo comprido que faz lembrar uma cauda Alguns mouses mais novos satildeo sem fio

Mouse

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3265

32

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O mouse geralmente possui dois bototildees um botatildeo principal (normalmente o da esquerda) e um

botatildeo secundaacuterio Muitos mouses tambeacutem tecircm uma roda entre os dois bototildees que permite

percorrer as telas de informaccedilotildees

Ponteiros do mouse

Agrave medida que vocecirc move o mouse com a matildeo um ponteiro na tela se move na mesma direccedilatildeo

(A aparecircncia do ponteiro pode mudar dependendo da sua posiccedilatildeo na tela) Quando quiser

selecionar um item aponte para ele e clique no botatildeo principal ou seja pressione-o e solte-o

Apontar e clicar com o mouse eacute a principal maneira de interagir com o computador Para mais

informaccedilotildees consulte Usando o mouse

Teclado

A finalidade principal do teclado eacute digitar texto no computador Ele possui teclas para letras e

nuacutemeros exatamente como em uma maacutequina de escrever A diferenccedila estaacute nas teclas especiais

As teclas de funccedilatildeo localizadas na linha superior executam funccedilotildees diferentes dependendo

de onde satildeo usadas

O teclado numeacuterico localizado agrave direita na maioria dos teclados permite inserir nuacutemeros

rapidamente

As teclas de navegaccedilatildeo como as teclas de seta permitem mover sua posiccedilatildeo dentro de

documentos ou paacuteginas da Web

Teclado

Vocecirc tambeacutem pode usar o teclado para executar muitas das mesmas tarefas que executa com

um mouse Para mais informaccedilotildees consulte Usando o teclado

Monitor

O monitor exibe informaccedilotildees em forma visual usando texto e elementos graacuteficos A parte do

monitor que exibe as informaccedilotildees eacute chamada tela Como a tela de uma televisatildeo a tela de um

computador pode mostrar imagens paradas ou em movimento

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3365

33

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Existem dois tipos baacutesicos de monitores CRT (tubo de raios catoacutedicos) e LCD (viacutedeo de cristal

liacutequido) Ambos produzem imagens niacutetidas mas os monitores LCD levam vantagem por serem

mais finos e mais leves

Monitor LCD (agrave esquerda) monitor CRT (agrave direita)

Impressora

Uma impressora transfere dados de um computador para o papel Vocecirc natildeo precisa de

impressora para usar o computador mas se tiver uma poderaacute imprimir emails cartotildees convites

anuacutencios e outros materiais Muitas pessoas tambeacutem preferem imprimir suas fotos em casa

Os dois principais tipos de impressora satildeo a jato de tinta e a laser As impressoras a jato de tinta

satildeo as mais populares para uso domeacutestico Elas podem imprimir em preto e branco ou em cores

e produzem fotos de alta qualidade quando usadas com papel especial As impressoras a laser

satildeo mais raacutepidas e mais adequadas para uso intenso

Impressora a jato de tinta (agrave esquerda) impressora a laser (agrave direita)

Alto-falantes

Os alto-falantes satildeo usados para tocar som Eles podem vir embutidos na unidade de sistema ou

ser conectados com cabos Satildeo eles que permitem ouvir muacutesica e efeitos de som no computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3465

34

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Alto-falantes do computador

Modem

Para conectar o computador agrave Internet vocecirc precisa de um modem um dispositivo que envia e

recebe informaccedilotildees do computador por linha telefocircnica ou cabo de alta velocidade Agraves vezes os

modems vecircm embutidos na unidade de sistema mas os de alta velocidade normalmente satildeo

componentes separados

Modem a cabo

O QUE Eacute O SOFTWARE

O Software eacute uma aplicaccedilatildeo ou programa do computador escrita numa determinadalinguagem interpretaacutevel por uma determinada maacutequina (o processador de um computador ou

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3565

35

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

outro equipamento) e que permite executar determinadas tarefas para as quais o software foi

projetado Estes programas satildeo compostos por uma sequecircncia de instruccedilotildees (os comandos) e de

declaraccedilotildees de dados as quais satildeo armazenaacuteveis num meio digital

Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por um

computador com o objetivo de executar tarefas especiacuteficas Tambeacutem pode ser definido como

os programas que comandam o funcionamento de um computador

Em um computador o software eacute classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer

instruccedilotildees para o hardware O hardware eacute toda a parte fiacutesica que constitui o computador por

exemplo a CPU a memoacuteria e os dispositivos de entrada e saiacuteda O software eacute constituiacutedo por

todos os programas que existem para um referido sistema quer sejam produzidos pelo proacuteprio

utente ou pelo fabricante do computador

O termo inglecircs software foi usado pela primeira vez em 1958 em um artigo escrito pelo cientistaamericano John Wilder Tukey Foi tambeacutem ele o responsaacutevel por introduzir o termo bit para

designar diacutegito binaacuterio

Os softwares podem ser classificados como

SOFTWARE DE SISTEMA

Geralmente dividido em SISTEMAS OPERACIONAIS e PROGRAMAS UTILITAacuteRIOS Para

comeccedilar os Sist Operacionais satildeo de grande importacircncia pois eles nos datildeo a opccedilatildeo de dizer ao

computador o que ele deve fazer Dois exemplos bastante conhecidos do nosso puacuteblico satildeoo Mac o Windows e o Linux Os Programas utilitaacuterios geralmente satildeo softwares de menor porte

com funccedilotildees mais especificas tipo Verificaccedilatildeo de Disco Coacutepias de Seguranccedila entre outros

SOFTWARE APLICATIVO

Neste tipo de software se enquadram todos aqueles programas que satildeo utilizados na execuccedilatildeo

de tarefas especiacuteficas Posso citar vaacuterios exemplos mas os mais comuns satildeo os processadores

de texto como o Word que servem para trabalhar com os mais diversos tipos de textos emitir

etiquetas e fazer formulaacuterios as planilhas eletrocircnicas como o Excel satildeo poderosas ferramentas

de caacutelculos que facilitam tanto aquele trabalho aacuterduo de matemaacutetica fazer graacuteficos com real

representaccedilatildeo dos dados eacute uma coisa muito boa pra quem precisa e por uacuteltimo o que muitos

usam mas natildeo sabem o nome ao certo que satildeo os Browsers ou Navegadores softwares usados

para navegar na Web dentre eles os mais conhecidos atualmente satildeo Windows Internet

Explorer Firefox Google Chrome Opera e Safaacuteri

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3665

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3765

37

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

hoje eles satildeo bastante usados em situaccedilotildees de treinamentos de pessoas para enfrentar casos no

seu dia-a-dia

SOFTWARE DE JOGOS

Geralmente satildeo softwares relacionados a entretenimento para proporcionar lazer e diversatildeo

Dispotildeem de muitos recursos interativos e existem de todos os tipos desde estrateacutegias ateacute

simulaccedilotildees reais de muitas coisas como corridas (Need for Speed) ateacute mesmo de vida como o

Second Life

SOFTWARES ABERTOS

Satildeo aqueles que permitem que o usuaacuterio produza com liberdade e criatividade se classificam

nessa categoria aqueles softwares de apresentaccedilotildees bancos de dados e vaacuterios outros

Para fixar

Descreva uma definiccedilatildeo para os tipos de softwares

Software de Sistema_____________________________________________________________

Software Aplicativo ______________________________________________________________

Software de Linguagem __________________________________________________________

Software abertos _______________________________________________________________

Capiacutetulo 4 - Conceitos Baacutesicos de Banco de Dados

Segundo Korth um banco de dados ldquoeacute uma coleccedilatildeo de dados inter -relacionados

representando informaccedilotildees sobre um domiacutenio especiacuteficordquo ou seja sempre que for possiacutevel

agrupar informaccedilotildees que se relacionam e tratam de um mesmo assunto posso dizer que tenho

um banco de dados

Podemos exemplificar situaccedilotildees claacutessicas como uma lista telefocircnica um cataacutelogo de CDs ou um

sistema de controle de RH de uma empresa

Jaacute um sistema de gerenciamento de banco de dados (SGBD) eacute um software que possui

recursos capazes de manipular as informaccedilotildees do banco de dados e interagir com o usuaacuterio

Exemplos de SGBDs satildeo Oracle SQL Server DB2 PostgreSQL MySQL o proacuteprio Access ouParadox entre outros

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3865

38

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Por uacuteltimo temos que conceituar um sistema de banco de dados como o conjunto de quatro

componentes baacutesicos dados hardware software e usuaacuterios Date conceituou que ldquosistema de

bancos de dados pode ser considerado como uma sala de arquivos eletrocircnicardquo A Figura 1 ilustra

os componentes de um sistema de banco de dados

Componentes de um sistema de banco de dados

Os objetivos de um sistema de banco de dados satildeo o de isolar o usuaacuterio dos detalhes

internos do banco de dados (promover a abstraccedilatildeo de dados) e promover a independecircncia dos

dados em relaccedilatildeo agraves aplicaccedilotildees ou seja tornar independente da aplicaccedilatildeo a estrateacutegia de

acesso e a forma de armazenamento

Abstraccedilatildeo de dados

O sistema de banco de dados deve garantir uma visatildeo totalmente abstrata do banco de

dados para o usuaacuterio ou seja para o usuaacuterio do banco de dados pouco importa qual unidade de

armazenamento estaacute sendo usada para guardar seus dados contanto que os mesmos estejam

disponiacuteveis no momento necessaacuterio

Esta abstraccedilatildeo se daacute em trecircs niacuteveis (Figura 2) Niacutevel de visatildeo do usuaacuterio as partes do banco de dados que o usuaacuterio tem acesso de

acordo com a necessidade individual de cada usuaacuterio ou grupo de usuaacuterios

Niacutevel conceitual define quais os dados que estatildeo armazenados e qual o relacionamento

entre eles

Niacutevel fiacutesico eacute o niacutevel mais baixo de abstraccedilatildeo em que define efetivamente de que maneira

os dados estatildeo armazenados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3965

39

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 2 Niacuteveis de abstraccedilatildeo

Projeto de banco de dados

Todo bom sistema de banco de dados deve apresentar um projeto que visa a organizaccedilatildeo das

informaccedilotildees e utilizaccedilatildeo de teacutecnicas para que o futuro sistema obtenha boa performance e

tambeacutem facilite infinitamente as manutenccedilotildees que venham a acontecer

O projeto de banco de dados se daacute em duas fases

Modelagem conceitual Projeto loacutegico

Estas duas etapas se referem a um sistema de banco de dados ainda natildeo implementado ou seja

que ainda natildeo exista um novo projeto Para os casos em que o banco de dados jaacute exista mas eacute

um sistema legado por exemplo ou um sistema muito antigo sem documentaccedilatildeo o processo de

projeto de banco de dados se daraacute atraveacutes da utilizaccedilatildeo de uma teacutecnica chamada de Engenharia

Reversa que seraacute visto em outra oportunidade

Modelo conceitual

Eacute a descriccedilatildeo do BD de maneira independente ao SGBD ou seja define quais os dados

que apareceratildeo no BD mas sem se importar com a implementaccedilatildeo que se daraacute ao BD Desta

forma haacute uma abstraccedilatildeo em niacutevel de SGBD

Uma das teacutecnicas mais utilizadas dentre os profissionais da aacuterea eacute a abordagem entidade-

relacionamento (ER) onde o modelo eacute representado graficamente atraveacutes do diagrama entidade-

relacionamento (DER) (Figura 3)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 24: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2465

24

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

bull Operaccedilatildeo de InputOutput - satildeo as operaccedilotildees que envolvem os oacutergatildeos de entrada e

saiacuteda permitindo a comunicaccedilatildeo entre o operador e a maacutequina

Funccedilotildees do processamento de dados

Considera-se como processamento de dados o conjunto de todas as operaccedilotildees efetuadas desde

a entrada dos dados ateacute agrave saiacuteda da informaccedilatildeo Todas estas operaccedilotildees de vaacuterios tipos satildeo

normalmente associadas a seis funccedilotildees do processamento de dados input ordenaccedilatildeo

processamento armazenamento output e controle

bull Input - fase de seleccedilatildeo e aquisiccedilatildeo dos dados pelo computador

bull Ordenaccedilatildeo - esta eacute uma funccedilatildeo auxiliar O seu objetivo eacute dispor os dados de uma forma

organizada (ordenada) de modo a facilitar o seu tratamento Se os dados se mantiverem

ordenados segundo um determinado criteacuterio preacute-definido a sua pesquisa eacute mais faacutecil o que faz

aumentar a velocidade do processamento

bull Processamento - considera-se processamento ao conjunto de todas as operaccedilotildees

efetuadas internamente pelo computador na manipulaccedilatildeo dos dados

bull Armazenamento - esta eacute uma funccedilatildeo muito importante que permite posteriormente

analisar as etapas e os resultados do processamento

bull Output - eacute a obtenccedilatildeo de resultados sob a forma de informaccedilatildeo significativa para as

pessoas a quem se destina

bull Controle - a sua finalidade eacute detectar corrigir e eliminar possiacuteveis erros ou afastamentosem relaccedilatildeo aos objetivos inicialmente traccedilados

Utilidade de um banco de dados

Um banco de dados permite pocircr dados agrave disposiccedilatildeo de usuaacuterios para uma consulta uma

introduccedilatildeo ou uma atualizaccedilatildeo assegurando-se dos direitos atribuiacutedos a estes uacuteltimos Isso eacute

ainda mais uacutetil quando os dados informaacuteticos satildeo cada vez mais numerosos

Um banco de dados pode ser local quer dizer utilizaacutevel em uma maacutequina por um usuaacuterio

ou repartida quer dizer que as informaccedilotildees satildeo armazenadas em maacutequinas distantes eacessiacuteveis por rede A vantagem essencial da utilizaccedilatildeo dos bancos de dados eacute a possibilidade

de poder ser acessada por vaacuterios usuaacuterios simultaneamente

A gestatildeo dos bancos de dados

A fim de poder controlar os dados bem como os usuaacuterios a necessidade de um sistema de

gestatildeo fez-se sentir rapidamente A gestatildeo do banco de dados faz-se graccedilas a um sistema

chamado SGBD (sistema de gestatildeo de bancos de dados) ou em inglecircs DBMS (Database

managment system) O SGBD eacute um conjunto de serviccedilos (aplicaccedilotildees software) que permitem

gerenciar os bancos de dados quer dizer

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2565

25

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Permitir o acesso aos dados de maneira simples

Autorizar um acesso agraves informaccedilotildees a muacuteltiplos usuaacuterios

Manipular os dados presentes no banco de dados (inserccedilatildeo supressatildeo modificaccedilatildeo)

O SGBD pode decompor-se em trecircs subsistemas

O sistema de gestatildeo de arquivos permite o armazenamento das informaccedilotildees num suporte

fiacutesico

O SGBD interno gerencia a emissatildeo das informaccedilotildees

O SGBD externo representa a interface com o usuaacuterio

Bancos de dados satildeo conjuntos de dados com uma estrutura regular que organizam

informaccedilatildeo Um banco de dados normalmente agrupa informaccedilotildees utilizadas para um mesmo fim

O modelo de dados mais adotado hoje em dia eacute o modelo relacional onde as estruturas

tecircm a forma de tabelas compostas por linhas e colunas

Resumindo um banco de dados eacute uma coleccedilatildeo de dados relacionados Entende-se por

dado toda a informaccedilatildeo que pode ser armazenada e que apresenta algum significado impliacutecito

dentro do contexto ao qual ele se aplica Por exemplo num sistema bancaacuterio uma pessoa eacuteidentificada pelo seu cpf(cliente) Em um sistema escolar a pessoa eacute identificada pelo seu nuacutemero

de matriacutecula(aluno) Aleacutem disso os dados que seratildeo armazenados em cada situaccedilatildeo podem

diferir consideravelmente

Atividades

1) Onde utilizar um banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2665

26

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2) Como funciona um sistema gerenciador de banco de dados

3) Como funciona o modelo relacional

Modelo Relacional

O modelo relacional eacute uma teoria matemaacutetica desenvolvida por Edgar Frank Codd para

descrever como as bases de dados devem funcionar Embora esta teoria seja a base para o

software de bases de dados relacionais muito poucos sistemas de gestatildeo de bases de dados

seguem o modelo de forma restrita e todos tecircm funcionalidades que violam a teoria desta forma

variando a complexidade e o poder A discussatildeo se esses bancos de dados merecem ser

chamados de relacional ficou esgotada com tempo com a evoluccedilatildeo dos bancos existentes

De acordo com a arquitetura ANSI SPARC em trecircs niacuteveis os Bancos de dados

relacionais consistem de trecircs componentes

bull uma coleccedilatildeo de estruturas de dados formalmente chamadas de relaccedilotildees ou

informalmente tabelas compondo o niacutevel conceitual

bull uma coleccedilatildeo dos operadores a aacutelgebra e o caacutelculo relacionais que constituem a base da

linguagem SQL

bull uma coleccedilatildeo de restriccedilotildees da integridade definindo o conjunto consistente de estados de

base de dados e de alteraccedilotildees de estados As restriccedilotildees de integridade podem ser de quatro

tipos

bull domiacutenio (ou tipo de dados) bull atributo

bull restriccedilotildees de base de dados

De acordo com o Princiacutepio de Informaccedilatildeo toda informaccedilatildeo tem de ser representada como dados

qualquer tipo de atributo representa relaccedilotildees entre conjuntos de dados

Nos bancos de dados relacionais os relacionamentos entre as tabelas natildeo satildeo codificados

explicitamente na sua definiccedilatildeo Em vez disso se fazem implicitamente pela presenccedila de

atributos chave As bases de dados relacionais permitem aos utilizadores (incluindo

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2765

27

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

programadores) escreverem consultas (queries) reorganizando e utilizando os dados de forma

flexiacutevel e natildeo necessariamente antecipada pelos projetistas originais

Esta flexibilidade eacute especialmente importante em bases de dados que podem ser utilizadas

durante deacutecadas tornando as bases de dados relacionais muito populares no meio comercial

Um dos pontos fortes do modelo relacional de banco de dados eacute a possibilidade de

definiccedilatildeo de um conjunto de restriccedilotildees de integridade Estas definem os conjuntos de estados e

mudanccedilas de estado consistentes do banco de dados determinando os valores que podem e os

que natildeo podem ser armazenados

Aplicaccedilotildees de bancos de dados

Bancos de dados satildeo usados em muitas aplicaccedilotildees enquanto atravessando virtualmente a

gama inteira de software de computador Bancos de dados eacute o meacutetodo preferido de

armazenamento para aplicaccedilotildees multiusuaacuterias grandes onde a coordenaccedilatildeo entre muitosusuaacuterios eacute necessaacuteria Ateacute mesmo usuaacuterios individuais os acham convenientes entretanto e

muitos programas de correio eletrocircnico e os organizadores pessoais estatildeo baseados em

tecnologia de banco de dados standard

Aplicativo de Banco de Dados

Um aplicativo de banco de dados eacute um tipo de software exclusivo para gerenciar um banco

de dados Aplicativos de banco de dados abrangem uma vasta variedade de necessidades e

objetivos de pequenas ferramentas como uma agenda ateacute complexos sistemas empresariaispara desempenhar tarefas como a contabilidade

O termo Aplicativo de Banco de dados usualmente se refere a softwares que oferecem

uma interface para o banco de dados Exemplos de aplicativos de banco de dados satildeo Microsoft

Visual FoxPro Microsoft Access dBASE FileMaker (em certa medida) HyperCard MySQL

PostgreSQL Microsoft SQL Server e Oracle

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2865

28

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Capiacutetulo 3 - HARDWARE E SOFTWARE

O QUE Eacute O HARDWARE

No acircmbito da informaacutetica eacute dada a designaccedilatildeo de hardware a todos os componentes

fiacutesicos que fazem parte de um sistema informaacutetico incluiacutedo toda a parte fiacutesica de um computador

(nomeadamente os processadores motherbord disco riacutegido placas de som placas de viacutedeo

memoacuterias etc) e todos os perifeacutericos (tais como teclados mouse monitores impressoras

scanners modems entre outros)

Peccedilas de um computador

Se vocecirc usa um computador desktop jaacute deve saber que natildeo existe uma parte uacutenica

chamada computador Um computador eacute na verdade um sistema de muitas partes funcionando

em conjunto As partes fiacutesicas que vocecirc pode ver e tocar satildeo denominadas

coletivamente hardware (O software por outro lado se refere agraves instruccedilotildees ou programas que

dizem ao hardware o que fazer)

A ilustraccedilatildeo a seguir mostra os dispositivos de hardware mais comuns em um sistema de

computador desktop Seu sistema pode ter uma aparecircncia um pouco diferente mas

provavelmente possui a maioria destas peccedilas Um computador laptop possui peccedilas semelhantes

mas as combina em um uacutenico pacote do tamanho de um caderno

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2965

29

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Sistema de computador desktop

Unidade de sistema

A unidade de sistema (Gabinete) eacute o nuacutecleo de um sistema de computador Normalmente

eacute uma caixa retangular colocada sobre a mesa ou embaixo dela Dentro dessa caixa estatildeo os

componentes eletrocircnicos que processam as informaccedilotildees O mais importante desses

componentes eacute a CPU (unidade de processamento central) ou microprocessador que atua como

o ceacuterebro do computador Outro componente eacute a memoacuteria RAM que armazena

temporariamente informaccedilotildees utilizadas pela CPU enquanto o computador estaacute ligado As

informaccedilotildees gravadas na RAM satildeo apagadas quando o computador eacute desligado

Quase todas as outras partes do computador se conectam agrave unidade de sistema por meio

de cabos Os cabos satildeo conectados aportas (aberturas) especiacuteficas geralmente na parte traseira

da unidade de sistema O hardware que natildeo faz parte da unidade de sistema eacute

chamado dispositivo perifeacuterico ou simplesmente dispositivo

Unidade de sistema

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3065

30

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Armazenamento

O computador possui uma ou mais unidades de disco ou seja dispositivos que armazenam

informaccedilotildees em um disco de plaacutestico ou de metal O disco preserva as informaccedilotildees mesmo

quando o computador estaacute desligado

Unidade de disco riacutegido

A unidade de disco riacutegido do computador armazena informaccedilotildees em um disco riacutegido que eacute um

prato riacutegido ou pilha de pratos com uma superfiacutecie magneacutetica Como os discos riacutegidos podem

reter uma grande quantidade de informaccedilotildees normalmente eles funcionam como principal meio

de armazenamento do computador guardando praticamente todos os programas e arquivos Em

geral a unidade de disco riacutegido fica localizada dentro da unidade de sistema

Unidade de disco riacutegidoUnidades de CD e DVD

Hoje em dia quase todos os computadores vecircm equipados com uma unidade de CD ou DVD

geralmente localizada na frente da unidade de sistema As unidades de CD usam lasers para ler

(recuperar) dados de um CD Muitas delas tambeacutem podem gravar dados em CDs Se vocecirc tiver

uma unidade de disco gravaacutevel poderaacute armazenar coacutepias de seus arquivos em CDs vazios A

unidade de CD tambeacutem serve para tocar CDs de muacutesica no computador

CD

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3165

31

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

As unidades de DVD fazem o mesmo que as unidades de CD e tambeacutem lecircem DVDs Se vocecirc

tiver uma unidade de DVD poderaacute ver filmes no computador Muitas unidades de DVD podem

gravar dados em DVDs vazios

Dica

Se vocecirc tiver uma unidade de CD ou DVD gravaacutevel faccedila backup (copie) periodicamente de seus

arquivos importantes em CDs ou DVDs Dessa forma caso venha a ocorrer alguma falha no disco

riacutegido vocecirc natildeo perderaacute os dados

Unidade de disquete

As unidades de disquete armazenam informaccedilotildees em discos tambeacutem chamados discos

flexiacuteveis ou disquetes Comparado a CDs e DVDs os disquetes podem armazenar apenas uma

pequena quantidade de dados Eles tambeacutem recuperam informaccedilotildees de forma mais lenta e satildeo

mais vulneraacuteveis a danos Por esses motivos as unidades de disquete satildeo cada vez menosusadas embora ainda sejam incluiacutedas em alguns computadores

Disquete

Por que estes discos satildeo chamados de disquetes Apesar de a parte externa ser composta de

plaacutestico riacutegido isso eacute apenas a capa O interior do disco eacute feito de um material de vinil fino e

flexiacutevel

Mouse

Mouse eacute um pequeno dispositivo usado para apontar e selecionar itens na tela do computador

Embora existam mouses de vaacuterias formas o modelo mais comum se assemelha a um rato (como

diz o nome em inglecircs) Ele eacute pequeno e alongado sendo conectado agrave unidade de sistema por um

cabo comprido que faz lembrar uma cauda Alguns mouses mais novos satildeo sem fio

Mouse

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3265

32

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O mouse geralmente possui dois bototildees um botatildeo principal (normalmente o da esquerda) e um

botatildeo secundaacuterio Muitos mouses tambeacutem tecircm uma roda entre os dois bototildees que permite

percorrer as telas de informaccedilotildees

Ponteiros do mouse

Agrave medida que vocecirc move o mouse com a matildeo um ponteiro na tela se move na mesma direccedilatildeo

(A aparecircncia do ponteiro pode mudar dependendo da sua posiccedilatildeo na tela) Quando quiser

selecionar um item aponte para ele e clique no botatildeo principal ou seja pressione-o e solte-o

Apontar e clicar com o mouse eacute a principal maneira de interagir com o computador Para mais

informaccedilotildees consulte Usando o mouse

Teclado

A finalidade principal do teclado eacute digitar texto no computador Ele possui teclas para letras e

nuacutemeros exatamente como em uma maacutequina de escrever A diferenccedila estaacute nas teclas especiais

As teclas de funccedilatildeo localizadas na linha superior executam funccedilotildees diferentes dependendo

de onde satildeo usadas

O teclado numeacuterico localizado agrave direita na maioria dos teclados permite inserir nuacutemeros

rapidamente

As teclas de navegaccedilatildeo como as teclas de seta permitem mover sua posiccedilatildeo dentro de

documentos ou paacuteginas da Web

Teclado

Vocecirc tambeacutem pode usar o teclado para executar muitas das mesmas tarefas que executa com

um mouse Para mais informaccedilotildees consulte Usando o teclado

Monitor

O monitor exibe informaccedilotildees em forma visual usando texto e elementos graacuteficos A parte do

monitor que exibe as informaccedilotildees eacute chamada tela Como a tela de uma televisatildeo a tela de um

computador pode mostrar imagens paradas ou em movimento

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3365

33

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Existem dois tipos baacutesicos de monitores CRT (tubo de raios catoacutedicos) e LCD (viacutedeo de cristal

liacutequido) Ambos produzem imagens niacutetidas mas os monitores LCD levam vantagem por serem

mais finos e mais leves

Monitor LCD (agrave esquerda) monitor CRT (agrave direita)

Impressora

Uma impressora transfere dados de um computador para o papel Vocecirc natildeo precisa de

impressora para usar o computador mas se tiver uma poderaacute imprimir emails cartotildees convites

anuacutencios e outros materiais Muitas pessoas tambeacutem preferem imprimir suas fotos em casa

Os dois principais tipos de impressora satildeo a jato de tinta e a laser As impressoras a jato de tinta

satildeo as mais populares para uso domeacutestico Elas podem imprimir em preto e branco ou em cores

e produzem fotos de alta qualidade quando usadas com papel especial As impressoras a laser

satildeo mais raacutepidas e mais adequadas para uso intenso

Impressora a jato de tinta (agrave esquerda) impressora a laser (agrave direita)

Alto-falantes

Os alto-falantes satildeo usados para tocar som Eles podem vir embutidos na unidade de sistema ou

ser conectados com cabos Satildeo eles que permitem ouvir muacutesica e efeitos de som no computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3465

34

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Alto-falantes do computador

Modem

Para conectar o computador agrave Internet vocecirc precisa de um modem um dispositivo que envia e

recebe informaccedilotildees do computador por linha telefocircnica ou cabo de alta velocidade Agraves vezes os

modems vecircm embutidos na unidade de sistema mas os de alta velocidade normalmente satildeo

componentes separados

Modem a cabo

O QUE Eacute O SOFTWARE

O Software eacute uma aplicaccedilatildeo ou programa do computador escrita numa determinadalinguagem interpretaacutevel por uma determinada maacutequina (o processador de um computador ou

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3565

35

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

outro equipamento) e que permite executar determinadas tarefas para as quais o software foi

projetado Estes programas satildeo compostos por uma sequecircncia de instruccedilotildees (os comandos) e de

declaraccedilotildees de dados as quais satildeo armazenaacuteveis num meio digital

Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por um

computador com o objetivo de executar tarefas especiacuteficas Tambeacutem pode ser definido como

os programas que comandam o funcionamento de um computador

Em um computador o software eacute classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer

instruccedilotildees para o hardware O hardware eacute toda a parte fiacutesica que constitui o computador por

exemplo a CPU a memoacuteria e os dispositivos de entrada e saiacuteda O software eacute constituiacutedo por

todos os programas que existem para um referido sistema quer sejam produzidos pelo proacuteprio

utente ou pelo fabricante do computador

O termo inglecircs software foi usado pela primeira vez em 1958 em um artigo escrito pelo cientistaamericano John Wilder Tukey Foi tambeacutem ele o responsaacutevel por introduzir o termo bit para

designar diacutegito binaacuterio

Os softwares podem ser classificados como

SOFTWARE DE SISTEMA

Geralmente dividido em SISTEMAS OPERACIONAIS e PROGRAMAS UTILITAacuteRIOS Para

comeccedilar os Sist Operacionais satildeo de grande importacircncia pois eles nos datildeo a opccedilatildeo de dizer ao

computador o que ele deve fazer Dois exemplos bastante conhecidos do nosso puacuteblico satildeoo Mac o Windows e o Linux Os Programas utilitaacuterios geralmente satildeo softwares de menor porte

com funccedilotildees mais especificas tipo Verificaccedilatildeo de Disco Coacutepias de Seguranccedila entre outros

SOFTWARE APLICATIVO

Neste tipo de software se enquadram todos aqueles programas que satildeo utilizados na execuccedilatildeo

de tarefas especiacuteficas Posso citar vaacuterios exemplos mas os mais comuns satildeo os processadores

de texto como o Word que servem para trabalhar com os mais diversos tipos de textos emitir

etiquetas e fazer formulaacuterios as planilhas eletrocircnicas como o Excel satildeo poderosas ferramentas

de caacutelculos que facilitam tanto aquele trabalho aacuterduo de matemaacutetica fazer graacuteficos com real

representaccedilatildeo dos dados eacute uma coisa muito boa pra quem precisa e por uacuteltimo o que muitos

usam mas natildeo sabem o nome ao certo que satildeo os Browsers ou Navegadores softwares usados

para navegar na Web dentre eles os mais conhecidos atualmente satildeo Windows Internet

Explorer Firefox Google Chrome Opera e Safaacuteri

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3665

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3765

37

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

hoje eles satildeo bastante usados em situaccedilotildees de treinamentos de pessoas para enfrentar casos no

seu dia-a-dia

SOFTWARE DE JOGOS

Geralmente satildeo softwares relacionados a entretenimento para proporcionar lazer e diversatildeo

Dispotildeem de muitos recursos interativos e existem de todos os tipos desde estrateacutegias ateacute

simulaccedilotildees reais de muitas coisas como corridas (Need for Speed) ateacute mesmo de vida como o

Second Life

SOFTWARES ABERTOS

Satildeo aqueles que permitem que o usuaacuterio produza com liberdade e criatividade se classificam

nessa categoria aqueles softwares de apresentaccedilotildees bancos de dados e vaacuterios outros

Para fixar

Descreva uma definiccedilatildeo para os tipos de softwares

Software de Sistema_____________________________________________________________

Software Aplicativo ______________________________________________________________

Software de Linguagem __________________________________________________________

Software abertos _______________________________________________________________

Capiacutetulo 4 - Conceitos Baacutesicos de Banco de Dados

Segundo Korth um banco de dados ldquoeacute uma coleccedilatildeo de dados inter -relacionados

representando informaccedilotildees sobre um domiacutenio especiacuteficordquo ou seja sempre que for possiacutevel

agrupar informaccedilotildees que se relacionam e tratam de um mesmo assunto posso dizer que tenho

um banco de dados

Podemos exemplificar situaccedilotildees claacutessicas como uma lista telefocircnica um cataacutelogo de CDs ou um

sistema de controle de RH de uma empresa

Jaacute um sistema de gerenciamento de banco de dados (SGBD) eacute um software que possui

recursos capazes de manipular as informaccedilotildees do banco de dados e interagir com o usuaacuterio

Exemplos de SGBDs satildeo Oracle SQL Server DB2 PostgreSQL MySQL o proacuteprio Access ouParadox entre outros

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3865

38

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Por uacuteltimo temos que conceituar um sistema de banco de dados como o conjunto de quatro

componentes baacutesicos dados hardware software e usuaacuterios Date conceituou que ldquosistema de

bancos de dados pode ser considerado como uma sala de arquivos eletrocircnicardquo A Figura 1 ilustra

os componentes de um sistema de banco de dados

Componentes de um sistema de banco de dados

Os objetivos de um sistema de banco de dados satildeo o de isolar o usuaacuterio dos detalhes

internos do banco de dados (promover a abstraccedilatildeo de dados) e promover a independecircncia dos

dados em relaccedilatildeo agraves aplicaccedilotildees ou seja tornar independente da aplicaccedilatildeo a estrateacutegia de

acesso e a forma de armazenamento

Abstraccedilatildeo de dados

O sistema de banco de dados deve garantir uma visatildeo totalmente abstrata do banco de

dados para o usuaacuterio ou seja para o usuaacuterio do banco de dados pouco importa qual unidade de

armazenamento estaacute sendo usada para guardar seus dados contanto que os mesmos estejam

disponiacuteveis no momento necessaacuterio

Esta abstraccedilatildeo se daacute em trecircs niacuteveis (Figura 2) Niacutevel de visatildeo do usuaacuterio as partes do banco de dados que o usuaacuterio tem acesso de

acordo com a necessidade individual de cada usuaacuterio ou grupo de usuaacuterios

Niacutevel conceitual define quais os dados que estatildeo armazenados e qual o relacionamento

entre eles

Niacutevel fiacutesico eacute o niacutevel mais baixo de abstraccedilatildeo em que define efetivamente de que maneira

os dados estatildeo armazenados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3965

39

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 2 Niacuteveis de abstraccedilatildeo

Projeto de banco de dados

Todo bom sistema de banco de dados deve apresentar um projeto que visa a organizaccedilatildeo das

informaccedilotildees e utilizaccedilatildeo de teacutecnicas para que o futuro sistema obtenha boa performance e

tambeacutem facilite infinitamente as manutenccedilotildees que venham a acontecer

O projeto de banco de dados se daacute em duas fases

Modelagem conceitual Projeto loacutegico

Estas duas etapas se referem a um sistema de banco de dados ainda natildeo implementado ou seja

que ainda natildeo exista um novo projeto Para os casos em que o banco de dados jaacute exista mas eacute

um sistema legado por exemplo ou um sistema muito antigo sem documentaccedilatildeo o processo de

projeto de banco de dados se daraacute atraveacutes da utilizaccedilatildeo de uma teacutecnica chamada de Engenharia

Reversa que seraacute visto em outra oportunidade

Modelo conceitual

Eacute a descriccedilatildeo do BD de maneira independente ao SGBD ou seja define quais os dados

que apareceratildeo no BD mas sem se importar com a implementaccedilatildeo que se daraacute ao BD Desta

forma haacute uma abstraccedilatildeo em niacutevel de SGBD

Uma das teacutecnicas mais utilizadas dentre os profissionais da aacuterea eacute a abordagem entidade-

relacionamento (ER) onde o modelo eacute representado graficamente atraveacutes do diagrama entidade-

relacionamento (DER) (Figura 3)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 25: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2565

25

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Permitir o acesso aos dados de maneira simples

Autorizar um acesso agraves informaccedilotildees a muacuteltiplos usuaacuterios

Manipular os dados presentes no banco de dados (inserccedilatildeo supressatildeo modificaccedilatildeo)

O SGBD pode decompor-se em trecircs subsistemas

O sistema de gestatildeo de arquivos permite o armazenamento das informaccedilotildees num suporte

fiacutesico

O SGBD interno gerencia a emissatildeo das informaccedilotildees

O SGBD externo representa a interface com o usuaacuterio

Bancos de dados satildeo conjuntos de dados com uma estrutura regular que organizam

informaccedilatildeo Um banco de dados normalmente agrupa informaccedilotildees utilizadas para um mesmo fim

O modelo de dados mais adotado hoje em dia eacute o modelo relacional onde as estruturas

tecircm a forma de tabelas compostas por linhas e colunas

Resumindo um banco de dados eacute uma coleccedilatildeo de dados relacionados Entende-se por

dado toda a informaccedilatildeo que pode ser armazenada e que apresenta algum significado impliacutecito

dentro do contexto ao qual ele se aplica Por exemplo num sistema bancaacuterio uma pessoa eacuteidentificada pelo seu cpf(cliente) Em um sistema escolar a pessoa eacute identificada pelo seu nuacutemero

de matriacutecula(aluno) Aleacutem disso os dados que seratildeo armazenados em cada situaccedilatildeo podem

diferir consideravelmente

Atividades

1) Onde utilizar um banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2665

26

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2) Como funciona um sistema gerenciador de banco de dados

3) Como funciona o modelo relacional

Modelo Relacional

O modelo relacional eacute uma teoria matemaacutetica desenvolvida por Edgar Frank Codd para

descrever como as bases de dados devem funcionar Embora esta teoria seja a base para o

software de bases de dados relacionais muito poucos sistemas de gestatildeo de bases de dados

seguem o modelo de forma restrita e todos tecircm funcionalidades que violam a teoria desta forma

variando a complexidade e o poder A discussatildeo se esses bancos de dados merecem ser

chamados de relacional ficou esgotada com tempo com a evoluccedilatildeo dos bancos existentes

De acordo com a arquitetura ANSI SPARC em trecircs niacuteveis os Bancos de dados

relacionais consistem de trecircs componentes

bull uma coleccedilatildeo de estruturas de dados formalmente chamadas de relaccedilotildees ou

informalmente tabelas compondo o niacutevel conceitual

bull uma coleccedilatildeo dos operadores a aacutelgebra e o caacutelculo relacionais que constituem a base da

linguagem SQL

bull uma coleccedilatildeo de restriccedilotildees da integridade definindo o conjunto consistente de estados de

base de dados e de alteraccedilotildees de estados As restriccedilotildees de integridade podem ser de quatro

tipos

bull domiacutenio (ou tipo de dados) bull atributo

bull restriccedilotildees de base de dados

De acordo com o Princiacutepio de Informaccedilatildeo toda informaccedilatildeo tem de ser representada como dados

qualquer tipo de atributo representa relaccedilotildees entre conjuntos de dados

Nos bancos de dados relacionais os relacionamentos entre as tabelas natildeo satildeo codificados

explicitamente na sua definiccedilatildeo Em vez disso se fazem implicitamente pela presenccedila de

atributos chave As bases de dados relacionais permitem aos utilizadores (incluindo

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2765

27

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

programadores) escreverem consultas (queries) reorganizando e utilizando os dados de forma

flexiacutevel e natildeo necessariamente antecipada pelos projetistas originais

Esta flexibilidade eacute especialmente importante em bases de dados que podem ser utilizadas

durante deacutecadas tornando as bases de dados relacionais muito populares no meio comercial

Um dos pontos fortes do modelo relacional de banco de dados eacute a possibilidade de

definiccedilatildeo de um conjunto de restriccedilotildees de integridade Estas definem os conjuntos de estados e

mudanccedilas de estado consistentes do banco de dados determinando os valores que podem e os

que natildeo podem ser armazenados

Aplicaccedilotildees de bancos de dados

Bancos de dados satildeo usados em muitas aplicaccedilotildees enquanto atravessando virtualmente a

gama inteira de software de computador Bancos de dados eacute o meacutetodo preferido de

armazenamento para aplicaccedilotildees multiusuaacuterias grandes onde a coordenaccedilatildeo entre muitosusuaacuterios eacute necessaacuteria Ateacute mesmo usuaacuterios individuais os acham convenientes entretanto e

muitos programas de correio eletrocircnico e os organizadores pessoais estatildeo baseados em

tecnologia de banco de dados standard

Aplicativo de Banco de Dados

Um aplicativo de banco de dados eacute um tipo de software exclusivo para gerenciar um banco

de dados Aplicativos de banco de dados abrangem uma vasta variedade de necessidades e

objetivos de pequenas ferramentas como uma agenda ateacute complexos sistemas empresariaispara desempenhar tarefas como a contabilidade

O termo Aplicativo de Banco de dados usualmente se refere a softwares que oferecem

uma interface para o banco de dados Exemplos de aplicativos de banco de dados satildeo Microsoft

Visual FoxPro Microsoft Access dBASE FileMaker (em certa medida) HyperCard MySQL

PostgreSQL Microsoft SQL Server e Oracle

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2865

28

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Capiacutetulo 3 - HARDWARE E SOFTWARE

O QUE Eacute O HARDWARE

No acircmbito da informaacutetica eacute dada a designaccedilatildeo de hardware a todos os componentes

fiacutesicos que fazem parte de um sistema informaacutetico incluiacutedo toda a parte fiacutesica de um computador

(nomeadamente os processadores motherbord disco riacutegido placas de som placas de viacutedeo

memoacuterias etc) e todos os perifeacutericos (tais como teclados mouse monitores impressoras

scanners modems entre outros)

Peccedilas de um computador

Se vocecirc usa um computador desktop jaacute deve saber que natildeo existe uma parte uacutenica

chamada computador Um computador eacute na verdade um sistema de muitas partes funcionando

em conjunto As partes fiacutesicas que vocecirc pode ver e tocar satildeo denominadas

coletivamente hardware (O software por outro lado se refere agraves instruccedilotildees ou programas que

dizem ao hardware o que fazer)

A ilustraccedilatildeo a seguir mostra os dispositivos de hardware mais comuns em um sistema de

computador desktop Seu sistema pode ter uma aparecircncia um pouco diferente mas

provavelmente possui a maioria destas peccedilas Um computador laptop possui peccedilas semelhantes

mas as combina em um uacutenico pacote do tamanho de um caderno

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2965

29

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Sistema de computador desktop

Unidade de sistema

A unidade de sistema (Gabinete) eacute o nuacutecleo de um sistema de computador Normalmente

eacute uma caixa retangular colocada sobre a mesa ou embaixo dela Dentro dessa caixa estatildeo os

componentes eletrocircnicos que processam as informaccedilotildees O mais importante desses

componentes eacute a CPU (unidade de processamento central) ou microprocessador que atua como

o ceacuterebro do computador Outro componente eacute a memoacuteria RAM que armazena

temporariamente informaccedilotildees utilizadas pela CPU enquanto o computador estaacute ligado As

informaccedilotildees gravadas na RAM satildeo apagadas quando o computador eacute desligado

Quase todas as outras partes do computador se conectam agrave unidade de sistema por meio

de cabos Os cabos satildeo conectados aportas (aberturas) especiacuteficas geralmente na parte traseira

da unidade de sistema O hardware que natildeo faz parte da unidade de sistema eacute

chamado dispositivo perifeacuterico ou simplesmente dispositivo

Unidade de sistema

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3065

30

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Armazenamento

O computador possui uma ou mais unidades de disco ou seja dispositivos que armazenam

informaccedilotildees em um disco de plaacutestico ou de metal O disco preserva as informaccedilotildees mesmo

quando o computador estaacute desligado

Unidade de disco riacutegido

A unidade de disco riacutegido do computador armazena informaccedilotildees em um disco riacutegido que eacute um

prato riacutegido ou pilha de pratos com uma superfiacutecie magneacutetica Como os discos riacutegidos podem

reter uma grande quantidade de informaccedilotildees normalmente eles funcionam como principal meio

de armazenamento do computador guardando praticamente todos os programas e arquivos Em

geral a unidade de disco riacutegido fica localizada dentro da unidade de sistema

Unidade de disco riacutegidoUnidades de CD e DVD

Hoje em dia quase todos os computadores vecircm equipados com uma unidade de CD ou DVD

geralmente localizada na frente da unidade de sistema As unidades de CD usam lasers para ler

(recuperar) dados de um CD Muitas delas tambeacutem podem gravar dados em CDs Se vocecirc tiver

uma unidade de disco gravaacutevel poderaacute armazenar coacutepias de seus arquivos em CDs vazios A

unidade de CD tambeacutem serve para tocar CDs de muacutesica no computador

CD

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3165

31

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

As unidades de DVD fazem o mesmo que as unidades de CD e tambeacutem lecircem DVDs Se vocecirc

tiver uma unidade de DVD poderaacute ver filmes no computador Muitas unidades de DVD podem

gravar dados em DVDs vazios

Dica

Se vocecirc tiver uma unidade de CD ou DVD gravaacutevel faccedila backup (copie) periodicamente de seus

arquivos importantes em CDs ou DVDs Dessa forma caso venha a ocorrer alguma falha no disco

riacutegido vocecirc natildeo perderaacute os dados

Unidade de disquete

As unidades de disquete armazenam informaccedilotildees em discos tambeacutem chamados discos

flexiacuteveis ou disquetes Comparado a CDs e DVDs os disquetes podem armazenar apenas uma

pequena quantidade de dados Eles tambeacutem recuperam informaccedilotildees de forma mais lenta e satildeo

mais vulneraacuteveis a danos Por esses motivos as unidades de disquete satildeo cada vez menosusadas embora ainda sejam incluiacutedas em alguns computadores

Disquete

Por que estes discos satildeo chamados de disquetes Apesar de a parte externa ser composta de

plaacutestico riacutegido isso eacute apenas a capa O interior do disco eacute feito de um material de vinil fino e

flexiacutevel

Mouse

Mouse eacute um pequeno dispositivo usado para apontar e selecionar itens na tela do computador

Embora existam mouses de vaacuterias formas o modelo mais comum se assemelha a um rato (como

diz o nome em inglecircs) Ele eacute pequeno e alongado sendo conectado agrave unidade de sistema por um

cabo comprido que faz lembrar uma cauda Alguns mouses mais novos satildeo sem fio

Mouse

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3265

32

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O mouse geralmente possui dois bototildees um botatildeo principal (normalmente o da esquerda) e um

botatildeo secundaacuterio Muitos mouses tambeacutem tecircm uma roda entre os dois bototildees que permite

percorrer as telas de informaccedilotildees

Ponteiros do mouse

Agrave medida que vocecirc move o mouse com a matildeo um ponteiro na tela se move na mesma direccedilatildeo

(A aparecircncia do ponteiro pode mudar dependendo da sua posiccedilatildeo na tela) Quando quiser

selecionar um item aponte para ele e clique no botatildeo principal ou seja pressione-o e solte-o

Apontar e clicar com o mouse eacute a principal maneira de interagir com o computador Para mais

informaccedilotildees consulte Usando o mouse

Teclado

A finalidade principal do teclado eacute digitar texto no computador Ele possui teclas para letras e

nuacutemeros exatamente como em uma maacutequina de escrever A diferenccedila estaacute nas teclas especiais

As teclas de funccedilatildeo localizadas na linha superior executam funccedilotildees diferentes dependendo

de onde satildeo usadas

O teclado numeacuterico localizado agrave direita na maioria dos teclados permite inserir nuacutemeros

rapidamente

As teclas de navegaccedilatildeo como as teclas de seta permitem mover sua posiccedilatildeo dentro de

documentos ou paacuteginas da Web

Teclado

Vocecirc tambeacutem pode usar o teclado para executar muitas das mesmas tarefas que executa com

um mouse Para mais informaccedilotildees consulte Usando o teclado

Monitor

O monitor exibe informaccedilotildees em forma visual usando texto e elementos graacuteficos A parte do

monitor que exibe as informaccedilotildees eacute chamada tela Como a tela de uma televisatildeo a tela de um

computador pode mostrar imagens paradas ou em movimento

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3365

33

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Existem dois tipos baacutesicos de monitores CRT (tubo de raios catoacutedicos) e LCD (viacutedeo de cristal

liacutequido) Ambos produzem imagens niacutetidas mas os monitores LCD levam vantagem por serem

mais finos e mais leves

Monitor LCD (agrave esquerda) monitor CRT (agrave direita)

Impressora

Uma impressora transfere dados de um computador para o papel Vocecirc natildeo precisa de

impressora para usar o computador mas se tiver uma poderaacute imprimir emails cartotildees convites

anuacutencios e outros materiais Muitas pessoas tambeacutem preferem imprimir suas fotos em casa

Os dois principais tipos de impressora satildeo a jato de tinta e a laser As impressoras a jato de tinta

satildeo as mais populares para uso domeacutestico Elas podem imprimir em preto e branco ou em cores

e produzem fotos de alta qualidade quando usadas com papel especial As impressoras a laser

satildeo mais raacutepidas e mais adequadas para uso intenso

Impressora a jato de tinta (agrave esquerda) impressora a laser (agrave direita)

Alto-falantes

Os alto-falantes satildeo usados para tocar som Eles podem vir embutidos na unidade de sistema ou

ser conectados com cabos Satildeo eles que permitem ouvir muacutesica e efeitos de som no computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3465

34

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Alto-falantes do computador

Modem

Para conectar o computador agrave Internet vocecirc precisa de um modem um dispositivo que envia e

recebe informaccedilotildees do computador por linha telefocircnica ou cabo de alta velocidade Agraves vezes os

modems vecircm embutidos na unidade de sistema mas os de alta velocidade normalmente satildeo

componentes separados

Modem a cabo

O QUE Eacute O SOFTWARE

O Software eacute uma aplicaccedilatildeo ou programa do computador escrita numa determinadalinguagem interpretaacutevel por uma determinada maacutequina (o processador de um computador ou

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3565

35

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

outro equipamento) e que permite executar determinadas tarefas para as quais o software foi

projetado Estes programas satildeo compostos por uma sequecircncia de instruccedilotildees (os comandos) e de

declaraccedilotildees de dados as quais satildeo armazenaacuteveis num meio digital

Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por um

computador com o objetivo de executar tarefas especiacuteficas Tambeacutem pode ser definido como

os programas que comandam o funcionamento de um computador

Em um computador o software eacute classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer

instruccedilotildees para o hardware O hardware eacute toda a parte fiacutesica que constitui o computador por

exemplo a CPU a memoacuteria e os dispositivos de entrada e saiacuteda O software eacute constituiacutedo por

todos os programas que existem para um referido sistema quer sejam produzidos pelo proacuteprio

utente ou pelo fabricante do computador

O termo inglecircs software foi usado pela primeira vez em 1958 em um artigo escrito pelo cientistaamericano John Wilder Tukey Foi tambeacutem ele o responsaacutevel por introduzir o termo bit para

designar diacutegito binaacuterio

Os softwares podem ser classificados como

SOFTWARE DE SISTEMA

Geralmente dividido em SISTEMAS OPERACIONAIS e PROGRAMAS UTILITAacuteRIOS Para

comeccedilar os Sist Operacionais satildeo de grande importacircncia pois eles nos datildeo a opccedilatildeo de dizer ao

computador o que ele deve fazer Dois exemplos bastante conhecidos do nosso puacuteblico satildeoo Mac o Windows e o Linux Os Programas utilitaacuterios geralmente satildeo softwares de menor porte

com funccedilotildees mais especificas tipo Verificaccedilatildeo de Disco Coacutepias de Seguranccedila entre outros

SOFTWARE APLICATIVO

Neste tipo de software se enquadram todos aqueles programas que satildeo utilizados na execuccedilatildeo

de tarefas especiacuteficas Posso citar vaacuterios exemplos mas os mais comuns satildeo os processadores

de texto como o Word que servem para trabalhar com os mais diversos tipos de textos emitir

etiquetas e fazer formulaacuterios as planilhas eletrocircnicas como o Excel satildeo poderosas ferramentas

de caacutelculos que facilitam tanto aquele trabalho aacuterduo de matemaacutetica fazer graacuteficos com real

representaccedilatildeo dos dados eacute uma coisa muito boa pra quem precisa e por uacuteltimo o que muitos

usam mas natildeo sabem o nome ao certo que satildeo os Browsers ou Navegadores softwares usados

para navegar na Web dentre eles os mais conhecidos atualmente satildeo Windows Internet

Explorer Firefox Google Chrome Opera e Safaacuteri

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3665

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3765

37

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

hoje eles satildeo bastante usados em situaccedilotildees de treinamentos de pessoas para enfrentar casos no

seu dia-a-dia

SOFTWARE DE JOGOS

Geralmente satildeo softwares relacionados a entretenimento para proporcionar lazer e diversatildeo

Dispotildeem de muitos recursos interativos e existem de todos os tipos desde estrateacutegias ateacute

simulaccedilotildees reais de muitas coisas como corridas (Need for Speed) ateacute mesmo de vida como o

Second Life

SOFTWARES ABERTOS

Satildeo aqueles que permitem que o usuaacuterio produza com liberdade e criatividade se classificam

nessa categoria aqueles softwares de apresentaccedilotildees bancos de dados e vaacuterios outros

Para fixar

Descreva uma definiccedilatildeo para os tipos de softwares

Software de Sistema_____________________________________________________________

Software Aplicativo ______________________________________________________________

Software de Linguagem __________________________________________________________

Software abertos _______________________________________________________________

Capiacutetulo 4 - Conceitos Baacutesicos de Banco de Dados

Segundo Korth um banco de dados ldquoeacute uma coleccedilatildeo de dados inter -relacionados

representando informaccedilotildees sobre um domiacutenio especiacuteficordquo ou seja sempre que for possiacutevel

agrupar informaccedilotildees que se relacionam e tratam de um mesmo assunto posso dizer que tenho

um banco de dados

Podemos exemplificar situaccedilotildees claacutessicas como uma lista telefocircnica um cataacutelogo de CDs ou um

sistema de controle de RH de uma empresa

Jaacute um sistema de gerenciamento de banco de dados (SGBD) eacute um software que possui

recursos capazes de manipular as informaccedilotildees do banco de dados e interagir com o usuaacuterio

Exemplos de SGBDs satildeo Oracle SQL Server DB2 PostgreSQL MySQL o proacuteprio Access ouParadox entre outros

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3865

38

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Por uacuteltimo temos que conceituar um sistema de banco de dados como o conjunto de quatro

componentes baacutesicos dados hardware software e usuaacuterios Date conceituou que ldquosistema de

bancos de dados pode ser considerado como uma sala de arquivos eletrocircnicardquo A Figura 1 ilustra

os componentes de um sistema de banco de dados

Componentes de um sistema de banco de dados

Os objetivos de um sistema de banco de dados satildeo o de isolar o usuaacuterio dos detalhes

internos do banco de dados (promover a abstraccedilatildeo de dados) e promover a independecircncia dos

dados em relaccedilatildeo agraves aplicaccedilotildees ou seja tornar independente da aplicaccedilatildeo a estrateacutegia de

acesso e a forma de armazenamento

Abstraccedilatildeo de dados

O sistema de banco de dados deve garantir uma visatildeo totalmente abstrata do banco de

dados para o usuaacuterio ou seja para o usuaacuterio do banco de dados pouco importa qual unidade de

armazenamento estaacute sendo usada para guardar seus dados contanto que os mesmos estejam

disponiacuteveis no momento necessaacuterio

Esta abstraccedilatildeo se daacute em trecircs niacuteveis (Figura 2) Niacutevel de visatildeo do usuaacuterio as partes do banco de dados que o usuaacuterio tem acesso de

acordo com a necessidade individual de cada usuaacuterio ou grupo de usuaacuterios

Niacutevel conceitual define quais os dados que estatildeo armazenados e qual o relacionamento

entre eles

Niacutevel fiacutesico eacute o niacutevel mais baixo de abstraccedilatildeo em que define efetivamente de que maneira

os dados estatildeo armazenados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3965

39

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 2 Niacuteveis de abstraccedilatildeo

Projeto de banco de dados

Todo bom sistema de banco de dados deve apresentar um projeto que visa a organizaccedilatildeo das

informaccedilotildees e utilizaccedilatildeo de teacutecnicas para que o futuro sistema obtenha boa performance e

tambeacutem facilite infinitamente as manutenccedilotildees que venham a acontecer

O projeto de banco de dados se daacute em duas fases

Modelagem conceitual Projeto loacutegico

Estas duas etapas se referem a um sistema de banco de dados ainda natildeo implementado ou seja

que ainda natildeo exista um novo projeto Para os casos em que o banco de dados jaacute exista mas eacute

um sistema legado por exemplo ou um sistema muito antigo sem documentaccedilatildeo o processo de

projeto de banco de dados se daraacute atraveacutes da utilizaccedilatildeo de uma teacutecnica chamada de Engenharia

Reversa que seraacute visto em outra oportunidade

Modelo conceitual

Eacute a descriccedilatildeo do BD de maneira independente ao SGBD ou seja define quais os dados

que apareceratildeo no BD mas sem se importar com a implementaccedilatildeo que se daraacute ao BD Desta

forma haacute uma abstraccedilatildeo em niacutevel de SGBD

Uma das teacutecnicas mais utilizadas dentre os profissionais da aacuterea eacute a abordagem entidade-

relacionamento (ER) onde o modelo eacute representado graficamente atraveacutes do diagrama entidade-

relacionamento (DER) (Figura 3)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 26: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2665

26

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2) Como funciona um sistema gerenciador de banco de dados

3) Como funciona o modelo relacional

Modelo Relacional

O modelo relacional eacute uma teoria matemaacutetica desenvolvida por Edgar Frank Codd para

descrever como as bases de dados devem funcionar Embora esta teoria seja a base para o

software de bases de dados relacionais muito poucos sistemas de gestatildeo de bases de dados

seguem o modelo de forma restrita e todos tecircm funcionalidades que violam a teoria desta forma

variando a complexidade e o poder A discussatildeo se esses bancos de dados merecem ser

chamados de relacional ficou esgotada com tempo com a evoluccedilatildeo dos bancos existentes

De acordo com a arquitetura ANSI SPARC em trecircs niacuteveis os Bancos de dados

relacionais consistem de trecircs componentes

bull uma coleccedilatildeo de estruturas de dados formalmente chamadas de relaccedilotildees ou

informalmente tabelas compondo o niacutevel conceitual

bull uma coleccedilatildeo dos operadores a aacutelgebra e o caacutelculo relacionais que constituem a base da

linguagem SQL

bull uma coleccedilatildeo de restriccedilotildees da integridade definindo o conjunto consistente de estados de

base de dados e de alteraccedilotildees de estados As restriccedilotildees de integridade podem ser de quatro

tipos

bull domiacutenio (ou tipo de dados) bull atributo

bull restriccedilotildees de base de dados

De acordo com o Princiacutepio de Informaccedilatildeo toda informaccedilatildeo tem de ser representada como dados

qualquer tipo de atributo representa relaccedilotildees entre conjuntos de dados

Nos bancos de dados relacionais os relacionamentos entre as tabelas natildeo satildeo codificados

explicitamente na sua definiccedilatildeo Em vez disso se fazem implicitamente pela presenccedila de

atributos chave As bases de dados relacionais permitem aos utilizadores (incluindo

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2765

27

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

programadores) escreverem consultas (queries) reorganizando e utilizando os dados de forma

flexiacutevel e natildeo necessariamente antecipada pelos projetistas originais

Esta flexibilidade eacute especialmente importante em bases de dados que podem ser utilizadas

durante deacutecadas tornando as bases de dados relacionais muito populares no meio comercial

Um dos pontos fortes do modelo relacional de banco de dados eacute a possibilidade de

definiccedilatildeo de um conjunto de restriccedilotildees de integridade Estas definem os conjuntos de estados e

mudanccedilas de estado consistentes do banco de dados determinando os valores que podem e os

que natildeo podem ser armazenados

Aplicaccedilotildees de bancos de dados

Bancos de dados satildeo usados em muitas aplicaccedilotildees enquanto atravessando virtualmente a

gama inteira de software de computador Bancos de dados eacute o meacutetodo preferido de

armazenamento para aplicaccedilotildees multiusuaacuterias grandes onde a coordenaccedilatildeo entre muitosusuaacuterios eacute necessaacuteria Ateacute mesmo usuaacuterios individuais os acham convenientes entretanto e

muitos programas de correio eletrocircnico e os organizadores pessoais estatildeo baseados em

tecnologia de banco de dados standard

Aplicativo de Banco de Dados

Um aplicativo de banco de dados eacute um tipo de software exclusivo para gerenciar um banco

de dados Aplicativos de banco de dados abrangem uma vasta variedade de necessidades e

objetivos de pequenas ferramentas como uma agenda ateacute complexos sistemas empresariaispara desempenhar tarefas como a contabilidade

O termo Aplicativo de Banco de dados usualmente se refere a softwares que oferecem

uma interface para o banco de dados Exemplos de aplicativos de banco de dados satildeo Microsoft

Visual FoxPro Microsoft Access dBASE FileMaker (em certa medida) HyperCard MySQL

PostgreSQL Microsoft SQL Server e Oracle

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2865

28

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Capiacutetulo 3 - HARDWARE E SOFTWARE

O QUE Eacute O HARDWARE

No acircmbito da informaacutetica eacute dada a designaccedilatildeo de hardware a todos os componentes

fiacutesicos que fazem parte de um sistema informaacutetico incluiacutedo toda a parte fiacutesica de um computador

(nomeadamente os processadores motherbord disco riacutegido placas de som placas de viacutedeo

memoacuterias etc) e todos os perifeacutericos (tais como teclados mouse monitores impressoras

scanners modems entre outros)

Peccedilas de um computador

Se vocecirc usa um computador desktop jaacute deve saber que natildeo existe uma parte uacutenica

chamada computador Um computador eacute na verdade um sistema de muitas partes funcionando

em conjunto As partes fiacutesicas que vocecirc pode ver e tocar satildeo denominadas

coletivamente hardware (O software por outro lado se refere agraves instruccedilotildees ou programas que

dizem ao hardware o que fazer)

A ilustraccedilatildeo a seguir mostra os dispositivos de hardware mais comuns em um sistema de

computador desktop Seu sistema pode ter uma aparecircncia um pouco diferente mas

provavelmente possui a maioria destas peccedilas Um computador laptop possui peccedilas semelhantes

mas as combina em um uacutenico pacote do tamanho de um caderno

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2965

29

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Sistema de computador desktop

Unidade de sistema

A unidade de sistema (Gabinete) eacute o nuacutecleo de um sistema de computador Normalmente

eacute uma caixa retangular colocada sobre a mesa ou embaixo dela Dentro dessa caixa estatildeo os

componentes eletrocircnicos que processam as informaccedilotildees O mais importante desses

componentes eacute a CPU (unidade de processamento central) ou microprocessador que atua como

o ceacuterebro do computador Outro componente eacute a memoacuteria RAM que armazena

temporariamente informaccedilotildees utilizadas pela CPU enquanto o computador estaacute ligado As

informaccedilotildees gravadas na RAM satildeo apagadas quando o computador eacute desligado

Quase todas as outras partes do computador se conectam agrave unidade de sistema por meio

de cabos Os cabos satildeo conectados aportas (aberturas) especiacuteficas geralmente na parte traseira

da unidade de sistema O hardware que natildeo faz parte da unidade de sistema eacute

chamado dispositivo perifeacuterico ou simplesmente dispositivo

Unidade de sistema

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3065

30

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Armazenamento

O computador possui uma ou mais unidades de disco ou seja dispositivos que armazenam

informaccedilotildees em um disco de plaacutestico ou de metal O disco preserva as informaccedilotildees mesmo

quando o computador estaacute desligado

Unidade de disco riacutegido

A unidade de disco riacutegido do computador armazena informaccedilotildees em um disco riacutegido que eacute um

prato riacutegido ou pilha de pratos com uma superfiacutecie magneacutetica Como os discos riacutegidos podem

reter uma grande quantidade de informaccedilotildees normalmente eles funcionam como principal meio

de armazenamento do computador guardando praticamente todos os programas e arquivos Em

geral a unidade de disco riacutegido fica localizada dentro da unidade de sistema

Unidade de disco riacutegidoUnidades de CD e DVD

Hoje em dia quase todos os computadores vecircm equipados com uma unidade de CD ou DVD

geralmente localizada na frente da unidade de sistema As unidades de CD usam lasers para ler

(recuperar) dados de um CD Muitas delas tambeacutem podem gravar dados em CDs Se vocecirc tiver

uma unidade de disco gravaacutevel poderaacute armazenar coacutepias de seus arquivos em CDs vazios A

unidade de CD tambeacutem serve para tocar CDs de muacutesica no computador

CD

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3165

31

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

As unidades de DVD fazem o mesmo que as unidades de CD e tambeacutem lecircem DVDs Se vocecirc

tiver uma unidade de DVD poderaacute ver filmes no computador Muitas unidades de DVD podem

gravar dados em DVDs vazios

Dica

Se vocecirc tiver uma unidade de CD ou DVD gravaacutevel faccedila backup (copie) periodicamente de seus

arquivos importantes em CDs ou DVDs Dessa forma caso venha a ocorrer alguma falha no disco

riacutegido vocecirc natildeo perderaacute os dados

Unidade de disquete

As unidades de disquete armazenam informaccedilotildees em discos tambeacutem chamados discos

flexiacuteveis ou disquetes Comparado a CDs e DVDs os disquetes podem armazenar apenas uma

pequena quantidade de dados Eles tambeacutem recuperam informaccedilotildees de forma mais lenta e satildeo

mais vulneraacuteveis a danos Por esses motivos as unidades de disquete satildeo cada vez menosusadas embora ainda sejam incluiacutedas em alguns computadores

Disquete

Por que estes discos satildeo chamados de disquetes Apesar de a parte externa ser composta de

plaacutestico riacutegido isso eacute apenas a capa O interior do disco eacute feito de um material de vinil fino e

flexiacutevel

Mouse

Mouse eacute um pequeno dispositivo usado para apontar e selecionar itens na tela do computador

Embora existam mouses de vaacuterias formas o modelo mais comum se assemelha a um rato (como

diz o nome em inglecircs) Ele eacute pequeno e alongado sendo conectado agrave unidade de sistema por um

cabo comprido que faz lembrar uma cauda Alguns mouses mais novos satildeo sem fio

Mouse

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3265

32

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O mouse geralmente possui dois bototildees um botatildeo principal (normalmente o da esquerda) e um

botatildeo secundaacuterio Muitos mouses tambeacutem tecircm uma roda entre os dois bototildees que permite

percorrer as telas de informaccedilotildees

Ponteiros do mouse

Agrave medida que vocecirc move o mouse com a matildeo um ponteiro na tela se move na mesma direccedilatildeo

(A aparecircncia do ponteiro pode mudar dependendo da sua posiccedilatildeo na tela) Quando quiser

selecionar um item aponte para ele e clique no botatildeo principal ou seja pressione-o e solte-o

Apontar e clicar com o mouse eacute a principal maneira de interagir com o computador Para mais

informaccedilotildees consulte Usando o mouse

Teclado

A finalidade principal do teclado eacute digitar texto no computador Ele possui teclas para letras e

nuacutemeros exatamente como em uma maacutequina de escrever A diferenccedila estaacute nas teclas especiais

As teclas de funccedilatildeo localizadas na linha superior executam funccedilotildees diferentes dependendo

de onde satildeo usadas

O teclado numeacuterico localizado agrave direita na maioria dos teclados permite inserir nuacutemeros

rapidamente

As teclas de navegaccedilatildeo como as teclas de seta permitem mover sua posiccedilatildeo dentro de

documentos ou paacuteginas da Web

Teclado

Vocecirc tambeacutem pode usar o teclado para executar muitas das mesmas tarefas que executa com

um mouse Para mais informaccedilotildees consulte Usando o teclado

Monitor

O monitor exibe informaccedilotildees em forma visual usando texto e elementos graacuteficos A parte do

monitor que exibe as informaccedilotildees eacute chamada tela Como a tela de uma televisatildeo a tela de um

computador pode mostrar imagens paradas ou em movimento

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3365

33

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Existem dois tipos baacutesicos de monitores CRT (tubo de raios catoacutedicos) e LCD (viacutedeo de cristal

liacutequido) Ambos produzem imagens niacutetidas mas os monitores LCD levam vantagem por serem

mais finos e mais leves

Monitor LCD (agrave esquerda) monitor CRT (agrave direita)

Impressora

Uma impressora transfere dados de um computador para o papel Vocecirc natildeo precisa de

impressora para usar o computador mas se tiver uma poderaacute imprimir emails cartotildees convites

anuacutencios e outros materiais Muitas pessoas tambeacutem preferem imprimir suas fotos em casa

Os dois principais tipos de impressora satildeo a jato de tinta e a laser As impressoras a jato de tinta

satildeo as mais populares para uso domeacutestico Elas podem imprimir em preto e branco ou em cores

e produzem fotos de alta qualidade quando usadas com papel especial As impressoras a laser

satildeo mais raacutepidas e mais adequadas para uso intenso

Impressora a jato de tinta (agrave esquerda) impressora a laser (agrave direita)

Alto-falantes

Os alto-falantes satildeo usados para tocar som Eles podem vir embutidos na unidade de sistema ou

ser conectados com cabos Satildeo eles que permitem ouvir muacutesica e efeitos de som no computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3465

34

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Alto-falantes do computador

Modem

Para conectar o computador agrave Internet vocecirc precisa de um modem um dispositivo que envia e

recebe informaccedilotildees do computador por linha telefocircnica ou cabo de alta velocidade Agraves vezes os

modems vecircm embutidos na unidade de sistema mas os de alta velocidade normalmente satildeo

componentes separados

Modem a cabo

O QUE Eacute O SOFTWARE

O Software eacute uma aplicaccedilatildeo ou programa do computador escrita numa determinadalinguagem interpretaacutevel por uma determinada maacutequina (o processador de um computador ou

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3565

35

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

outro equipamento) e que permite executar determinadas tarefas para as quais o software foi

projetado Estes programas satildeo compostos por uma sequecircncia de instruccedilotildees (os comandos) e de

declaraccedilotildees de dados as quais satildeo armazenaacuteveis num meio digital

Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por um

computador com o objetivo de executar tarefas especiacuteficas Tambeacutem pode ser definido como

os programas que comandam o funcionamento de um computador

Em um computador o software eacute classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer

instruccedilotildees para o hardware O hardware eacute toda a parte fiacutesica que constitui o computador por

exemplo a CPU a memoacuteria e os dispositivos de entrada e saiacuteda O software eacute constituiacutedo por

todos os programas que existem para um referido sistema quer sejam produzidos pelo proacuteprio

utente ou pelo fabricante do computador

O termo inglecircs software foi usado pela primeira vez em 1958 em um artigo escrito pelo cientistaamericano John Wilder Tukey Foi tambeacutem ele o responsaacutevel por introduzir o termo bit para

designar diacutegito binaacuterio

Os softwares podem ser classificados como

SOFTWARE DE SISTEMA

Geralmente dividido em SISTEMAS OPERACIONAIS e PROGRAMAS UTILITAacuteRIOS Para

comeccedilar os Sist Operacionais satildeo de grande importacircncia pois eles nos datildeo a opccedilatildeo de dizer ao

computador o que ele deve fazer Dois exemplos bastante conhecidos do nosso puacuteblico satildeoo Mac o Windows e o Linux Os Programas utilitaacuterios geralmente satildeo softwares de menor porte

com funccedilotildees mais especificas tipo Verificaccedilatildeo de Disco Coacutepias de Seguranccedila entre outros

SOFTWARE APLICATIVO

Neste tipo de software se enquadram todos aqueles programas que satildeo utilizados na execuccedilatildeo

de tarefas especiacuteficas Posso citar vaacuterios exemplos mas os mais comuns satildeo os processadores

de texto como o Word que servem para trabalhar com os mais diversos tipos de textos emitir

etiquetas e fazer formulaacuterios as planilhas eletrocircnicas como o Excel satildeo poderosas ferramentas

de caacutelculos que facilitam tanto aquele trabalho aacuterduo de matemaacutetica fazer graacuteficos com real

representaccedilatildeo dos dados eacute uma coisa muito boa pra quem precisa e por uacuteltimo o que muitos

usam mas natildeo sabem o nome ao certo que satildeo os Browsers ou Navegadores softwares usados

para navegar na Web dentre eles os mais conhecidos atualmente satildeo Windows Internet

Explorer Firefox Google Chrome Opera e Safaacuteri

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3665

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3765

37

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

hoje eles satildeo bastante usados em situaccedilotildees de treinamentos de pessoas para enfrentar casos no

seu dia-a-dia

SOFTWARE DE JOGOS

Geralmente satildeo softwares relacionados a entretenimento para proporcionar lazer e diversatildeo

Dispotildeem de muitos recursos interativos e existem de todos os tipos desde estrateacutegias ateacute

simulaccedilotildees reais de muitas coisas como corridas (Need for Speed) ateacute mesmo de vida como o

Second Life

SOFTWARES ABERTOS

Satildeo aqueles que permitem que o usuaacuterio produza com liberdade e criatividade se classificam

nessa categoria aqueles softwares de apresentaccedilotildees bancos de dados e vaacuterios outros

Para fixar

Descreva uma definiccedilatildeo para os tipos de softwares

Software de Sistema_____________________________________________________________

Software Aplicativo ______________________________________________________________

Software de Linguagem __________________________________________________________

Software abertos _______________________________________________________________

Capiacutetulo 4 - Conceitos Baacutesicos de Banco de Dados

Segundo Korth um banco de dados ldquoeacute uma coleccedilatildeo de dados inter -relacionados

representando informaccedilotildees sobre um domiacutenio especiacuteficordquo ou seja sempre que for possiacutevel

agrupar informaccedilotildees que se relacionam e tratam de um mesmo assunto posso dizer que tenho

um banco de dados

Podemos exemplificar situaccedilotildees claacutessicas como uma lista telefocircnica um cataacutelogo de CDs ou um

sistema de controle de RH de uma empresa

Jaacute um sistema de gerenciamento de banco de dados (SGBD) eacute um software que possui

recursos capazes de manipular as informaccedilotildees do banco de dados e interagir com o usuaacuterio

Exemplos de SGBDs satildeo Oracle SQL Server DB2 PostgreSQL MySQL o proacuteprio Access ouParadox entre outros

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3865

38

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Por uacuteltimo temos que conceituar um sistema de banco de dados como o conjunto de quatro

componentes baacutesicos dados hardware software e usuaacuterios Date conceituou que ldquosistema de

bancos de dados pode ser considerado como uma sala de arquivos eletrocircnicardquo A Figura 1 ilustra

os componentes de um sistema de banco de dados

Componentes de um sistema de banco de dados

Os objetivos de um sistema de banco de dados satildeo o de isolar o usuaacuterio dos detalhes

internos do banco de dados (promover a abstraccedilatildeo de dados) e promover a independecircncia dos

dados em relaccedilatildeo agraves aplicaccedilotildees ou seja tornar independente da aplicaccedilatildeo a estrateacutegia de

acesso e a forma de armazenamento

Abstraccedilatildeo de dados

O sistema de banco de dados deve garantir uma visatildeo totalmente abstrata do banco de

dados para o usuaacuterio ou seja para o usuaacuterio do banco de dados pouco importa qual unidade de

armazenamento estaacute sendo usada para guardar seus dados contanto que os mesmos estejam

disponiacuteveis no momento necessaacuterio

Esta abstraccedilatildeo se daacute em trecircs niacuteveis (Figura 2) Niacutevel de visatildeo do usuaacuterio as partes do banco de dados que o usuaacuterio tem acesso de

acordo com a necessidade individual de cada usuaacuterio ou grupo de usuaacuterios

Niacutevel conceitual define quais os dados que estatildeo armazenados e qual o relacionamento

entre eles

Niacutevel fiacutesico eacute o niacutevel mais baixo de abstraccedilatildeo em que define efetivamente de que maneira

os dados estatildeo armazenados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3965

39

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 2 Niacuteveis de abstraccedilatildeo

Projeto de banco de dados

Todo bom sistema de banco de dados deve apresentar um projeto que visa a organizaccedilatildeo das

informaccedilotildees e utilizaccedilatildeo de teacutecnicas para que o futuro sistema obtenha boa performance e

tambeacutem facilite infinitamente as manutenccedilotildees que venham a acontecer

O projeto de banco de dados se daacute em duas fases

Modelagem conceitual Projeto loacutegico

Estas duas etapas se referem a um sistema de banco de dados ainda natildeo implementado ou seja

que ainda natildeo exista um novo projeto Para os casos em que o banco de dados jaacute exista mas eacute

um sistema legado por exemplo ou um sistema muito antigo sem documentaccedilatildeo o processo de

projeto de banco de dados se daraacute atraveacutes da utilizaccedilatildeo de uma teacutecnica chamada de Engenharia

Reversa que seraacute visto em outra oportunidade

Modelo conceitual

Eacute a descriccedilatildeo do BD de maneira independente ao SGBD ou seja define quais os dados

que apareceratildeo no BD mas sem se importar com a implementaccedilatildeo que se daraacute ao BD Desta

forma haacute uma abstraccedilatildeo em niacutevel de SGBD

Uma das teacutecnicas mais utilizadas dentre os profissionais da aacuterea eacute a abordagem entidade-

relacionamento (ER) onde o modelo eacute representado graficamente atraveacutes do diagrama entidade-

relacionamento (DER) (Figura 3)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 27: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2765

27

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

programadores) escreverem consultas (queries) reorganizando e utilizando os dados de forma

flexiacutevel e natildeo necessariamente antecipada pelos projetistas originais

Esta flexibilidade eacute especialmente importante em bases de dados que podem ser utilizadas

durante deacutecadas tornando as bases de dados relacionais muito populares no meio comercial

Um dos pontos fortes do modelo relacional de banco de dados eacute a possibilidade de

definiccedilatildeo de um conjunto de restriccedilotildees de integridade Estas definem os conjuntos de estados e

mudanccedilas de estado consistentes do banco de dados determinando os valores que podem e os

que natildeo podem ser armazenados

Aplicaccedilotildees de bancos de dados

Bancos de dados satildeo usados em muitas aplicaccedilotildees enquanto atravessando virtualmente a

gama inteira de software de computador Bancos de dados eacute o meacutetodo preferido de

armazenamento para aplicaccedilotildees multiusuaacuterias grandes onde a coordenaccedilatildeo entre muitosusuaacuterios eacute necessaacuteria Ateacute mesmo usuaacuterios individuais os acham convenientes entretanto e

muitos programas de correio eletrocircnico e os organizadores pessoais estatildeo baseados em

tecnologia de banco de dados standard

Aplicativo de Banco de Dados

Um aplicativo de banco de dados eacute um tipo de software exclusivo para gerenciar um banco

de dados Aplicativos de banco de dados abrangem uma vasta variedade de necessidades e

objetivos de pequenas ferramentas como uma agenda ateacute complexos sistemas empresariaispara desempenhar tarefas como a contabilidade

O termo Aplicativo de Banco de dados usualmente se refere a softwares que oferecem

uma interface para o banco de dados Exemplos de aplicativos de banco de dados satildeo Microsoft

Visual FoxPro Microsoft Access dBASE FileMaker (em certa medida) HyperCard MySQL

PostgreSQL Microsoft SQL Server e Oracle

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2865

28

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Capiacutetulo 3 - HARDWARE E SOFTWARE

O QUE Eacute O HARDWARE

No acircmbito da informaacutetica eacute dada a designaccedilatildeo de hardware a todos os componentes

fiacutesicos que fazem parte de um sistema informaacutetico incluiacutedo toda a parte fiacutesica de um computador

(nomeadamente os processadores motherbord disco riacutegido placas de som placas de viacutedeo

memoacuterias etc) e todos os perifeacutericos (tais como teclados mouse monitores impressoras

scanners modems entre outros)

Peccedilas de um computador

Se vocecirc usa um computador desktop jaacute deve saber que natildeo existe uma parte uacutenica

chamada computador Um computador eacute na verdade um sistema de muitas partes funcionando

em conjunto As partes fiacutesicas que vocecirc pode ver e tocar satildeo denominadas

coletivamente hardware (O software por outro lado se refere agraves instruccedilotildees ou programas que

dizem ao hardware o que fazer)

A ilustraccedilatildeo a seguir mostra os dispositivos de hardware mais comuns em um sistema de

computador desktop Seu sistema pode ter uma aparecircncia um pouco diferente mas

provavelmente possui a maioria destas peccedilas Um computador laptop possui peccedilas semelhantes

mas as combina em um uacutenico pacote do tamanho de um caderno

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2965

29

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Sistema de computador desktop

Unidade de sistema

A unidade de sistema (Gabinete) eacute o nuacutecleo de um sistema de computador Normalmente

eacute uma caixa retangular colocada sobre a mesa ou embaixo dela Dentro dessa caixa estatildeo os

componentes eletrocircnicos que processam as informaccedilotildees O mais importante desses

componentes eacute a CPU (unidade de processamento central) ou microprocessador que atua como

o ceacuterebro do computador Outro componente eacute a memoacuteria RAM que armazena

temporariamente informaccedilotildees utilizadas pela CPU enquanto o computador estaacute ligado As

informaccedilotildees gravadas na RAM satildeo apagadas quando o computador eacute desligado

Quase todas as outras partes do computador se conectam agrave unidade de sistema por meio

de cabos Os cabos satildeo conectados aportas (aberturas) especiacuteficas geralmente na parte traseira

da unidade de sistema O hardware que natildeo faz parte da unidade de sistema eacute

chamado dispositivo perifeacuterico ou simplesmente dispositivo

Unidade de sistema

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3065

30

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Armazenamento

O computador possui uma ou mais unidades de disco ou seja dispositivos que armazenam

informaccedilotildees em um disco de plaacutestico ou de metal O disco preserva as informaccedilotildees mesmo

quando o computador estaacute desligado

Unidade de disco riacutegido

A unidade de disco riacutegido do computador armazena informaccedilotildees em um disco riacutegido que eacute um

prato riacutegido ou pilha de pratos com uma superfiacutecie magneacutetica Como os discos riacutegidos podem

reter uma grande quantidade de informaccedilotildees normalmente eles funcionam como principal meio

de armazenamento do computador guardando praticamente todos os programas e arquivos Em

geral a unidade de disco riacutegido fica localizada dentro da unidade de sistema

Unidade de disco riacutegidoUnidades de CD e DVD

Hoje em dia quase todos os computadores vecircm equipados com uma unidade de CD ou DVD

geralmente localizada na frente da unidade de sistema As unidades de CD usam lasers para ler

(recuperar) dados de um CD Muitas delas tambeacutem podem gravar dados em CDs Se vocecirc tiver

uma unidade de disco gravaacutevel poderaacute armazenar coacutepias de seus arquivos em CDs vazios A

unidade de CD tambeacutem serve para tocar CDs de muacutesica no computador

CD

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3165

31

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

As unidades de DVD fazem o mesmo que as unidades de CD e tambeacutem lecircem DVDs Se vocecirc

tiver uma unidade de DVD poderaacute ver filmes no computador Muitas unidades de DVD podem

gravar dados em DVDs vazios

Dica

Se vocecirc tiver uma unidade de CD ou DVD gravaacutevel faccedila backup (copie) periodicamente de seus

arquivos importantes em CDs ou DVDs Dessa forma caso venha a ocorrer alguma falha no disco

riacutegido vocecirc natildeo perderaacute os dados

Unidade de disquete

As unidades de disquete armazenam informaccedilotildees em discos tambeacutem chamados discos

flexiacuteveis ou disquetes Comparado a CDs e DVDs os disquetes podem armazenar apenas uma

pequena quantidade de dados Eles tambeacutem recuperam informaccedilotildees de forma mais lenta e satildeo

mais vulneraacuteveis a danos Por esses motivos as unidades de disquete satildeo cada vez menosusadas embora ainda sejam incluiacutedas em alguns computadores

Disquete

Por que estes discos satildeo chamados de disquetes Apesar de a parte externa ser composta de

plaacutestico riacutegido isso eacute apenas a capa O interior do disco eacute feito de um material de vinil fino e

flexiacutevel

Mouse

Mouse eacute um pequeno dispositivo usado para apontar e selecionar itens na tela do computador

Embora existam mouses de vaacuterias formas o modelo mais comum se assemelha a um rato (como

diz o nome em inglecircs) Ele eacute pequeno e alongado sendo conectado agrave unidade de sistema por um

cabo comprido que faz lembrar uma cauda Alguns mouses mais novos satildeo sem fio

Mouse

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3265

32

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O mouse geralmente possui dois bototildees um botatildeo principal (normalmente o da esquerda) e um

botatildeo secundaacuterio Muitos mouses tambeacutem tecircm uma roda entre os dois bototildees que permite

percorrer as telas de informaccedilotildees

Ponteiros do mouse

Agrave medida que vocecirc move o mouse com a matildeo um ponteiro na tela se move na mesma direccedilatildeo

(A aparecircncia do ponteiro pode mudar dependendo da sua posiccedilatildeo na tela) Quando quiser

selecionar um item aponte para ele e clique no botatildeo principal ou seja pressione-o e solte-o

Apontar e clicar com o mouse eacute a principal maneira de interagir com o computador Para mais

informaccedilotildees consulte Usando o mouse

Teclado

A finalidade principal do teclado eacute digitar texto no computador Ele possui teclas para letras e

nuacutemeros exatamente como em uma maacutequina de escrever A diferenccedila estaacute nas teclas especiais

As teclas de funccedilatildeo localizadas na linha superior executam funccedilotildees diferentes dependendo

de onde satildeo usadas

O teclado numeacuterico localizado agrave direita na maioria dos teclados permite inserir nuacutemeros

rapidamente

As teclas de navegaccedilatildeo como as teclas de seta permitem mover sua posiccedilatildeo dentro de

documentos ou paacuteginas da Web

Teclado

Vocecirc tambeacutem pode usar o teclado para executar muitas das mesmas tarefas que executa com

um mouse Para mais informaccedilotildees consulte Usando o teclado

Monitor

O monitor exibe informaccedilotildees em forma visual usando texto e elementos graacuteficos A parte do

monitor que exibe as informaccedilotildees eacute chamada tela Como a tela de uma televisatildeo a tela de um

computador pode mostrar imagens paradas ou em movimento

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3365

33

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Existem dois tipos baacutesicos de monitores CRT (tubo de raios catoacutedicos) e LCD (viacutedeo de cristal

liacutequido) Ambos produzem imagens niacutetidas mas os monitores LCD levam vantagem por serem

mais finos e mais leves

Monitor LCD (agrave esquerda) monitor CRT (agrave direita)

Impressora

Uma impressora transfere dados de um computador para o papel Vocecirc natildeo precisa de

impressora para usar o computador mas se tiver uma poderaacute imprimir emails cartotildees convites

anuacutencios e outros materiais Muitas pessoas tambeacutem preferem imprimir suas fotos em casa

Os dois principais tipos de impressora satildeo a jato de tinta e a laser As impressoras a jato de tinta

satildeo as mais populares para uso domeacutestico Elas podem imprimir em preto e branco ou em cores

e produzem fotos de alta qualidade quando usadas com papel especial As impressoras a laser

satildeo mais raacutepidas e mais adequadas para uso intenso

Impressora a jato de tinta (agrave esquerda) impressora a laser (agrave direita)

Alto-falantes

Os alto-falantes satildeo usados para tocar som Eles podem vir embutidos na unidade de sistema ou

ser conectados com cabos Satildeo eles que permitem ouvir muacutesica e efeitos de som no computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3465

34

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Alto-falantes do computador

Modem

Para conectar o computador agrave Internet vocecirc precisa de um modem um dispositivo que envia e

recebe informaccedilotildees do computador por linha telefocircnica ou cabo de alta velocidade Agraves vezes os

modems vecircm embutidos na unidade de sistema mas os de alta velocidade normalmente satildeo

componentes separados

Modem a cabo

O QUE Eacute O SOFTWARE

O Software eacute uma aplicaccedilatildeo ou programa do computador escrita numa determinadalinguagem interpretaacutevel por uma determinada maacutequina (o processador de um computador ou

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3565

35

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

outro equipamento) e que permite executar determinadas tarefas para as quais o software foi

projetado Estes programas satildeo compostos por uma sequecircncia de instruccedilotildees (os comandos) e de

declaraccedilotildees de dados as quais satildeo armazenaacuteveis num meio digital

Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por um

computador com o objetivo de executar tarefas especiacuteficas Tambeacutem pode ser definido como

os programas que comandam o funcionamento de um computador

Em um computador o software eacute classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer

instruccedilotildees para o hardware O hardware eacute toda a parte fiacutesica que constitui o computador por

exemplo a CPU a memoacuteria e os dispositivos de entrada e saiacuteda O software eacute constituiacutedo por

todos os programas que existem para um referido sistema quer sejam produzidos pelo proacuteprio

utente ou pelo fabricante do computador

O termo inglecircs software foi usado pela primeira vez em 1958 em um artigo escrito pelo cientistaamericano John Wilder Tukey Foi tambeacutem ele o responsaacutevel por introduzir o termo bit para

designar diacutegito binaacuterio

Os softwares podem ser classificados como

SOFTWARE DE SISTEMA

Geralmente dividido em SISTEMAS OPERACIONAIS e PROGRAMAS UTILITAacuteRIOS Para

comeccedilar os Sist Operacionais satildeo de grande importacircncia pois eles nos datildeo a opccedilatildeo de dizer ao

computador o que ele deve fazer Dois exemplos bastante conhecidos do nosso puacuteblico satildeoo Mac o Windows e o Linux Os Programas utilitaacuterios geralmente satildeo softwares de menor porte

com funccedilotildees mais especificas tipo Verificaccedilatildeo de Disco Coacutepias de Seguranccedila entre outros

SOFTWARE APLICATIVO

Neste tipo de software se enquadram todos aqueles programas que satildeo utilizados na execuccedilatildeo

de tarefas especiacuteficas Posso citar vaacuterios exemplos mas os mais comuns satildeo os processadores

de texto como o Word que servem para trabalhar com os mais diversos tipos de textos emitir

etiquetas e fazer formulaacuterios as planilhas eletrocircnicas como o Excel satildeo poderosas ferramentas

de caacutelculos que facilitam tanto aquele trabalho aacuterduo de matemaacutetica fazer graacuteficos com real

representaccedilatildeo dos dados eacute uma coisa muito boa pra quem precisa e por uacuteltimo o que muitos

usam mas natildeo sabem o nome ao certo que satildeo os Browsers ou Navegadores softwares usados

para navegar na Web dentre eles os mais conhecidos atualmente satildeo Windows Internet

Explorer Firefox Google Chrome Opera e Safaacuteri

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3665

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3765

37

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

hoje eles satildeo bastante usados em situaccedilotildees de treinamentos de pessoas para enfrentar casos no

seu dia-a-dia

SOFTWARE DE JOGOS

Geralmente satildeo softwares relacionados a entretenimento para proporcionar lazer e diversatildeo

Dispotildeem de muitos recursos interativos e existem de todos os tipos desde estrateacutegias ateacute

simulaccedilotildees reais de muitas coisas como corridas (Need for Speed) ateacute mesmo de vida como o

Second Life

SOFTWARES ABERTOS

Satildeo aqueles que permitem que o usuaacuterio produza com liberdade e criatividade se classificam

nessa categoria aqueles softwares de apresentaccedilotildees bancos de dados e vaacuterios outros

Para fixar

Descreva uma definiccedilatildeo para os tipos de softwares

Software de Sistema_____________________________________________________________

Software Aplicativo ______________________________________________________________

Software de Linguagem __________________________________________________________

Software abertos _______________________________________________________________

Capiacutetulo 4 - Conceitos Baacutesicos de Banco de Dados

Segundo Korth um banco de dados ldquoeacute uma coleccedilatildeo de dados inter -relacionados

representando informaccedilotildees sobre um domiacutenio especiacuteficordquo ou seja sempre que for possiacutevel

agrupar informaccedilotildees que se relacionam e tratam de um mesmo assunto posso dizer que tenho

um banco de dados

Podemos exemplificar situaccedilotildees claacutessicas como uma lista telefocircnica um cataacutelogo de CDs ou um

sistema de controle de RH de uma empresa

Jaacute um sistema de gerenciamento de banco de dados (SGBD) eacute um software que possui

recursos capazes de manipular as informaccedilotildees do banco de dados e interagir com o usuaacuterio

Exemplos de SGBDs satildeo Oracle SQL Server DB2 PostgreSQL MySQL o proacuteprio Access ouParadox entre outros

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3865

38

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Por uacuteltimo temos que conceituar um sistema de banco de dados como o conjunto de quatro

componentes baacutesicos dados hardware software e usuaacuterios Date conceituou que ldquosistema de

bancos de dados pode ser considerado como uma sala de arquivos eletrocircnicardquo A Figura 1 ilustra

os componentes de um sistema de banco de dados

Componentes de um sistema de banco de dados

Os objetivos de um sistema de banco de dados satildeo o de isolar o usuaacuterio dos detalhes

internos do banco de dados (promover a abstraccedilatildeo de dados) e promover a independecircncia dos

dados em relaccedilatildeo agraves aplicaccedilotildees ou seja tornar independente da aplicaccedilatildeo a estrateacutegia de

acesso e a forma de armazenamento

Abstraccedilatildeo de dados

O sistema de banco de dados deve garantir uma visatildeo totalmente abstrata do banco de

dados para o usuaacuterio ou seja para o usuaacuterio do banco de dados pouco importa qual unidade de

armazenamento estaacute sendo usada para guardar seus dados contanto que os mesmos estejam

disponiacuteveis no momento necessaacuterio

Esta abstraccedilatildeo se daacute em trecircs niacuteveis (Figura 2) Niacutevel de visatildeo do usuaacuterio as partes do banco de dados que o usuaacuterio tem acesso de

acordo com a necessidade individual de cada usuaacuterio ou grupo de usuaacuterios

Niacutevel conceitual define quais os dados que estatildeo armazenados e qual o relacionamento

entre eles

Niacutevel fiacutesico eacute o niacutevel mais baixo de abstraccedilatildeo em que define efetivamente de que maneira

os dados estatildeo armazenados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3965

39

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 2 Niacuteveis de abstraccedilatildeo

Projeto de banco de dados

Todo bom sistema de banco de dados deve apresentar um projeto que visa a organizaccedilatildeo das

informaccedilotildees e utilizaccedilatildeo de teacutecnicas para que o futuro sistema obtenha boa performance e

tambeacutem facilite infinitamente as manutenccedilotildees que venham a acontecer

O projeto de banco de dados se daacute em duas fases

Modelagem conceitual Projeto loacutegico

Estas duas etapas se referem a um sistema de banco de dados ainda natildeo implementado ou seja

que ainda natildeo exista um novo projeto Para os casos em que o banco de dados jaacute exista mas eacute

um sistema legado por exemplo ou um sistema muito antigo sem documentaccedilatildeo o processo de

projeto de banco de dados se daraacute atraveacutes da utilizaccedilatildeo de uma teacutecnica chamada de Engenharia

Reversa que seraacute visto em outra oportunidade

Modelo conceitual

Eacute a descriccedilatildeo do BD de maneira independente ao SGBD ou seja define quais os dados

que apareceratildeo no BD mas sem se importar com a implementaccedilatildeo que se daraacute ao BD Desta

forma haacute uma abstraccedilatildeo em niacutevel de SGBD

Uma das teacutecnicas mais utilizadas dentre os profissionais da aacuterea eacute a abordagem entidade-

relacionamento (ER) onde o modelo eacute representado graficamente atraveacutes do diagrama entidade-

relacionamento (DER) (Figura 3)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 28: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2865

28

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Capiacutetulo 3 - HARDWARE E SOFTWARE

O QUE Eacute O HARDWARE

No acircmbito da informaacutetica eacute dada a designaccedilatildeo de hardware a todos os componentes

fiacutesicos que fazem parte de um sistema informaacutetico incluiacutedo toda a parte fiacutesica de um computador

(nomeadamente os processadores motherbord disco riacutegido placas de som placas de viacutedeo

memoacuterias etc) e todos os perifeacutericos (tais como teclados mouse monitores impressoras

scanners modems entre outros)

Peccedilas de um computador

Se vocecirc usa um computador desktop jaacute deve saber que natildeo existe uma parte uacutenica

chamada computador Um computador eacute na verdade um sistema de muitas partes funcionando

em conjunto As partes fiacutesicas que vocecirc pode ver e tocar satildeo denominadas

coletivamente hardware (O software por outro lado se refere agraves instruccedilotildees ou programas que

dizem ao hardware o que fazer)

A ilustraccedilatildeo a seguir mostra os dispositivos de hardware mais comuns em um sistema de

computador desktop Seu sistema pode ter uma aparecircncia um pouco diferente mas

provavelmente possui a maioria destas peccedilas Um computador laptop possui peccedilas semelhantes

mas as combina em um uacutenico pacote do tamanho de um caderno

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2965

29

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Sistema de computador desktop

Unidade de sistema

A unidade de sistema (Gabinete) eacute o nuacutecleo de um sistema de computador Normalmente

eacute uma caixa retangular colocada sobre a mesa ou embaixo dela Dentro dessa caixa estatildeo os

componentes eletrocircnicos que processam as informaccedilotildees O mais importante desses

componentes eacute a CPU (unidade de processamento central) ou microprocessador que atua como

o ceacuterebro do computador Outro componente eacute a memoacuteria RAM que armazena

temporariamente informaccedilotildees utilizadas pela CPU enquanto o computador estaacute ligado As

informaccedilotildees gravadas na RAM satildeo apagadas quando o computador eacute desligado

Quase todas as outras partes do computador se conectam agrave unidade de sistema por meio

de cabos Os cabos satildeo conectados aportas (aberturas) especiacuteficas geralmente na parte traseira

da unidade de sistema O hardware que natildeo faz parte da unidade de sistema eacute

chamado dispositivo perifeacuterico ou simplesmente dispositivo

Unidade de sistema

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3065

30

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Armazenamento

O computador possui uma ou mais unidades de disco ou seja dispositivos que armazenam

informaccedilotildees em um disco de plaacutestico ou de metal O disco preserva as informaccedilotildees mesmo

quando o computador estaacute desligado

Unidade de disco riacutegido

A unidade de disco riacutegido do computador armazena informaccedilotildees em um disco riacutegido que eacute um

prato riacutegido ou pilha de pratos com uma superfiacutecie magneacutetica Como os discos riacutegidos podem

reter uma grande quantidade de informaccedilotildees normalmente eles funcionam como principal meio

de armazenamento do computador guardando praticamente todos os programas e arquivos Em

geral a unidade de disco riacutegido fica localizada dentro da unidade de sistema

Unidade de disco riacutegidoUnidades de CD e DVD

Hoje em dia quase todos os computadores vecircm equipados com uma unidade de CD ou DVD

geralmente localizada na frente da unidade de sistema As unidades de CD usam lasers para ler

(recuperar) dados de um CD Muitas delas tambeacutem podem gravar dados em CDs Se vocecirc tiver

uma unidade de disco gravaacutevel poderaacute armazenar coacutepias de seus arquivos em CDs vazios A

unidade de CD tambeacutem serve para tocar CDs de muacutesica no computador

CD

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3165

31

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

As unidades de DVD fazem o mesmo que as unidades de CD e tambeacutem lecircem DVDs Se vocecirc

tiver uma unidade de DVD poderaacute ver filmes no computador Muitas unidades de DVD podem

gravar dados em DVDs vazios

Dica

Se vocecirc tiver uma unidade de CD ou DVD gravaacutevel faccedila backup (copie) periodicamente de seus

arquivos importantes em CDs ou DVDs Dessa forma caso venha a ocorrer alguma falha no disco

riacutegido vocecirc natildeo perderaacute os dados

Unidade de disquete

As unidades de disquete armazenam informaccedilotildees em discos tambeacutem chamados discos

flexiacuteveis ou disquetes Comparado a CDs e DVDs os disquetes podem armazenar apenas uma

pequena quantidade de dados Eles tambeacutem recuperam informaccedilotildees de forma mais lenta e satildeo

mais vulneraacuteveis a danos Por esses motivos as unidades de disquete satildeo cada vez menosusadas embora ainda sejam incluiacutedas em alguns computadores

Disquete

Por que estes discos satildeo chamados de disquetes Apesar de a parte externa ser composta de

plaacutestico riacutegido isso eacute apenas a capa O interior do disco eacute feito de um material de vinil fino e

flexiacutevel

Mouse

Mouse eacute um pequeno dispositivo usado para apontar e selecionar itens na tela do computador

Embora existam mouses de vaacuterias formas o modelo mais comum se assemelha a um rato (como

diz o nome em inglecircs) Ele eacute pequeno e alongado sendo conectado agrave unidade de sistema por um

cabo comprido que faz lembrar uma cauda Alguns mouses mais novos satildeo sem fio

Mouse

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3265

32

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O mouse geralmente possui dois bototildees um botatildeo principal (normalmente o da esquerda) e um

botatildeo secundaacuterio Muitos mouses tambeacutem tecircm uma roda entre os dois bototildees que permite

percorrer as telas de informaccedilotildees

Ponteiros do mouse

Agrave medida que vocecirc move o mouse com a matildeo um ponteiro na tela se move na mesma direccedilatildeo

(A aparecircncia do ponteiro pode mudar dependendo da sua posiccedilatildeo na tela) Quando quiser

selecionar um item aponte para ele e clique no botatildeo principal ou seja pressione-o e solte-o

Apontar e clicar com o mouse eacute a principal maneira de interagir com o computador Para mais

informaccedilotildees consulte Usando o mouse

Teclado

A finalidade principal do teclado eacute digitar texto no computador Ele possui teclas para letras e

nuacutemeros exatamente como em uma maacutequina de escrever A diferenccedila estaacute nas teclas especiais

As teclas de funccedilatildeo localizadas na linha superior executam funccedilotildees diferentes dependendo

de onde satildeo usadas

O teclado numeacuterico localizado agrave direita na maioria dos teclados permite inserir nuacutemeros

rapidamente

As teclas de navegaccedilatildeo como as teclas de seta permitem mover sua posiccedilatildeo dentro de

documentos ou paacuteginas da Web

Teclado

Vocecirc tambeacutem pode usar o teclado para executar muitas das mesmas tarefas que executa com

um mouse Para mais informaccedilotildees consulte Usando o teclado

Monitor

O monitor exibe informaccedilotildees em forma visual usando texto e elementos graacuteficos A parte do

monitor que exibe as informaccedilotildees eacute chamada tela Como a tela de uma televisatildeo a tela de um

computador pode mostrar imagens paradas ou em movimento

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3365

33

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Existem dois tipos baacutesicos de monitores CRT (tubo de raios catoacutedicos) e LCD (viacutedeo de cristal

liacutequido) Ambos produzem imagens niacutetidas mas os monitores LCD levam vantagem por serem

mais finos e mais leves

Monitor LCD (agrave esquerda) monitor CRT (agrave direita)

Impressora

Uma impressora transfere dados de um computador para o papel Vocecirc natildeo precisa de

impressora para usar o computador mas se tiver uma poderaacute imprimir emails cartotildees convites

anuacutencios e outros materiais Muitas pessoas tambeacutem preferem imprimir suas fotos em casa

Os dois principais tipos de impressora satildeo a jato de tinta e a laser As impressoras a jato de tinta

satildeo as mais populares para uso domeacutestico Elas podem imprimir em preto e branco ou em cores

e produzem fotos de alta qualidade quando usadas com papel especial As impressoras a laser

satildeo mais raacutepidas e mais adequadas para uso intenso

Impressora a jato de tinta (agrave esquerda) impressora a laser (agrave direita)

Alto-falantes

Os alto-falantes satildeo usados para tocar som Eles podem vir embutidos na unidade de sistema ou

ser conectados com cabos Satildeo eles que permitem ouvir muacutesica e efeitos de som no computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3465

34

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Alto-falantes do computador

Modem

Para conectar o computador agrave Internet vocecirc precisa de um modem um dispositivo que envia e

recebe informaccedilotildees do computador por linha telefocircnica ou cabo de alta velocidade Agraves vezes os

modems vecircm embutidos na unidade de sistema mas os de alta velocidade normalmente satildeo

componentes separados

Modem a cabo

O QUE Eacute O SOFTWARE

O Software eacute uma aplicaccedilatildeo ou programa do computador escrita numa determinadalinguagem interpretaacutevel por uma determinada maacutequina (o processador de um computador ou

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3565

35

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

outro equipamento) e que permite executar determinadas tarefas para as quais o software foi

projetado Estes programas satildeo compostos por uma sequecircncia de instruccedilotildees (os comandos) e de

declaraccedilotildees de dados as quais satildeo armazenaacuteveis num meio digital

Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por um

computador com o objetivo de executar tarefas especiacuteficas Tambeacutem pode ser definido como

os programas que comandam o funcionamento de um computador

Em um computador o software eacute classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer

instruccedilotildees para o hardware O hardware eacute toda a parte fiacutesica que constitui o computador por

exemplo a CPU a memoacuteria e os dispositivos de entrada e saiacuteda O software eacute constituiacutedo por

todos os programas que existem para um referido sistema quer sejam produzidos pelo proacuteprio

utente ou pelo fabricante do computador

O termo inglecircs software foi usado pela primeira vez em 1958 em um artigo escrito pelo cientistaamericano John Wilder Tukey Foi tambeacutem ele o responsaacutevel por introduzir o termo bit para

designar diacutegito binaacuterio

Os softwares podem ser classificados como

SOFTWARE DE SISTEMA

Geralmente dividido em SISTEMAS OPERACIONAIS e PROGRAMAS UTILITAacuteRIOS Para

comeccedilar os Sist Operacionais satildeo de grande importacircncia pois eles nos datildeo a opccedilatildeo de dizer ao

computador o que ele deve fazer Dois exemplos bastante conhecidos do nosso puacuteblico satildeoo Mac o Windows e o Linux Os Programas utilitaacuterios geralmente satildeo softwares de menor porte

com funccedilotildees mais especificas tipo Verificaccedilatildeo de Disco Coacutepias de Seguranccedila entre outros

SOFTWARE APLICATIVO

Neste tipo de software se enquadram todos aqueles programas que satildeo utilizados na execuccedilatildeo

de tarefas especiacuteficas Posso citar vaacuterios exemplos mas os mais comuns satildeo os processadores

de texto como o Word que servem para trabalhar com os mais diversos tipos de textos emitir

etiquetas e fazer formulaacuterios as planilhas eletrocircnicas como o Excel satildeo poderosas ferramentas

de caacutelculos que facilitam tanto aquele trabalho aacuterduo de matemaacutetica fazer graacuteficos com real

representaccedilatildeo dos dados eacute uma coisa muito boa pra quem precisa e por uacuteltimo o que muitos

usam mas natildeo sabem o nome ao certo que satildeo os Browsers ou Navegadores softwares usados

para navegar na Web dentre eles os mais conhecidos atualmente satildeo Windows Internet

Explorer Firefox Google Chrome Opera e Safaacuteri

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3665

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3765

37

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

hoje eles satildeo bastante usados em situaccedilotildees de treinamentos de pessoas para enfrentar casos no

seu dia-a-dia

SOFTWARE DE JOGOS

Geralmente satildeo softwares relacionados a entretenimento para proporcionar lazer e diversatildeo

Dispotildeem de muitos recursos interativos e existem de todos os tipos desde estrateacutegias ateacute

simulaccedilotildees reais de muitas coisas como corridas (Need for Speed) ateacute mesmo de vida como o

Second Life

SOFTWARES ABERTOS

Satildeo aqueles que permitem que o usuaacuterio produza com liberdade e criatividade se classificam

nessa categoria aqueles softwares de apresentaccedilotildees bancos de dados e vaacuterios outros

Para fixar

Descreva uma definiccedilatildeo para os tipos de softwares

Software de Sistema_____________________________________________________________

Software Aplicativo ______________________________________________________________

Software de Linguagem __________________________________________________________

Software abertos _______________________________________________________________

Capiacutetulo 4 - Conceitos Baacutesicos de Banco de Dados

Segundo Korth um banco de dados ldquoeacute uma coleccedilatildeo de dados inter -relacionados

representando informaccedilotildees sobre um domiacutenio especiacuteficordquo ou seja sempre que for possiacutevel

agrupar informaccedilotildees que se relacionam e tratam de um mesmo assunto posso dizer que tenho

um banco de dados

Podemos exemplificar situaccedilotildees claacutessicas como uma lista telefocircnica um cataacutelogo de CDs ou um

sistema de controle de RH de uma empresa

Jaacute um sistema de gerenciamento de banco de dados (SGBD) eacute um software que possui

recursos capazes de manipular as informaccedilotildees do banco de dados e interagir com o usuaacuterio

Exemplos de SGBDs satildeo Oracle SQL Server DB2 PostgreSQL MySQL o proacuteprio Access ouParadox entre outros

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3865

38

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Por uacuteltimo temos que conceituar um sistema de banco de dados como o conjunto de quatro

componentes baacutesicos dados hardware software e usuaacuterios Date conceituou que ldquosistema de

bancos de dados pode ser considerado como uma sala de arquivos eletrocircnicardquo A Figura 1 ilustra

os componentes de um sistema de banco de dados

Componentes de um sistema de banco de dados

Os objetivos de um sistema de banco de dados satildeo o de isolar o usuaacuterio dos detalhes

internos do banco de dados (promover a abstraccedilatildeo de dados) e promover a independecircncia dos

dados em relaccedilatildeo agraves aplicaccedilotildees ou seja tornar independente da aplicaccedilatildeo a estrateacutegia de

acesso e a forma de armazenamento

Abstraccedilatildeo de dados

O sistema de banco de dados deve garantir uma visatildeo totalmente abstrata do banco de

dados para o usuaacuterio ou seja para o usuaacuterio do banco de dados pouco importa qual unidade de

armazenamento estaacute sendo usada para guardar seus dados contanto que os mesmos estejam

disponiacuteveis no momento necessaacuterio

Esta abstraccedilatildeo se daacute em trecircs niacuteveis (Figura 2) Niacutevel de visatildeo do usuaacuterio as partes do banco de dados que o usuaacuterio tem acesso de

acordo com a necessidade individual de cada usuaacuterio ou grupo de usuaacuterios

Niacutevel conceitual define quais os dados que estatildeo armazenados e qual o relacionamento

entre eles

Niacutevel fiacutesico eacute o niacutevel mais baixo de abstraccedilatildeo em que define efetivamente de que maneira

os dados estatildeo armazenados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3965

39

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 2 Niacuteveis de abstraccedilatildeo

Projeto de banco de dados

Todo bom sistema de banco de dados deve apresentar um projeto que visa a organizaccedilatildeo das

informaccedilotildees e utilizaccedilatildeo de teacutecnicas para que o futuro sistema obtenha boa performance e

tambeacutem facilite infinitamente as manutenccedilotildees que venham a acontecer

O projeto de banco de dados se daacute em duas fases

Modelagem conceitual Projeto loacutegico

Estas duas etapas se referem a um sistema de banco de dados ainda natildeo implementado ou seja

que ainda natildeo exista um novo projeto Para os casos em que o banco de dados jaacute exista mas eacute

um sistema legado por exemplo ou um sistema muito antigo sem documentaccedilatildeo o processo de

projeto de banco de dados se daraacute atraveacutes da utilizaccedilatildeo de uma teacutecnica chamada de Engenharia

Reversa que seraacute visto em outra oportunidade

Modelo conceitual

Eacute a descriccedilatildeo do BD de maneira independente ao SGBD ou seja define quais os dados

que apareceratildeo no BD mas sem se importar com a implementaccedilatildeo que se daraacute ao BD Desta

forma haacute uma abstraccedilatildeo em niacutevel de SGBD

Uma das teacutecnicas mais utilizadas dentre os profissionais da aacuterea eacute a abordagem entidade-

relacionamento (ER) onde o modelo eacute representado graficamente atraveacutes do diagrama entidade-

relacionamento (DER) (Figura 3)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 29: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 2965

29

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Sistema de computador desktop

Unidade de sistema

A unidade de sistema (Gabinete) eacute o nuacutecleo de um sistema de computador Normalmente

eacute uma caixa retangular colocada sobre a mesa ou embaixo dela Dentro dessa caixa estatildeo os

componentes eletrocircnicos que processam as informaccedilotildees O mais importante desses

componentes eacute a CPU (unidade de processamento central) ou microprocessador que atua como

o ceacuterebro do computador Outro componente eacute a memoacuteria RAM que armazena

temporariamente informaccedilotildees utilizadas pela CPU enquanto o computador estaacute ligado As

informaccedilotildees gravadas na RAM satildeo apagadas quando o computador eacute desligado

Quase todas as outras partes do computador se conectam agrave unidade de sistema por meio

de cabos Os cabos satildeo conectados aportas (aberturas) especiacuteficas geralmente na parte traseira

da unidade de sistema O hardware que natildeo faz parte da unidade de sistema eacute

chamado dispositivo perifeacuterico ou simplesmente dispositivo

Unidade de sistema

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3065

30

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Armazenamento

O computador possui uma ou mais unidades de disco ou seja dispositivos que armazenam

informaccedilotildees em um disco de plaacutestico ou de metal O disco preserva as informaccedilotildees mesmo

quando o computador estaacute desligado

Unidade de disco riacutegido

A unidade de disco riacutegido do computador armazena informaccedilotildees em um disco riacutegido que eacute um

prato riacutegido ou pilha de pratos com uma superfiacutecie magneacutetica Como os discos riacutegidos podem

reter uma grande quantidade de informaccedilotildees normalmente eles funcionam como principal meio

de armazenamento do computador guardando praticamente todos os programas e arquivos Em

geral a unidade de disco riacutegido fica localizada dentro da unidade de sistema

Unidade de disco riacutegidoUnidades de CD e DVD

Hoje em dia quase todos os computadores vecircm equipados com uma unidade de CD ou DVD

geralmente localizada na frente da unidade de sistema As unidades de CD usam lasers para ler

(recuperar) dados de um CD Muitas delas tambeacutem podem gravar dados em CDs Se vocecirc tiver

uma unidade de disco gravaacutevel poderaacute armazenar coacutepias de seus arquivos em CDs vazios A

unidade de CD tambeacutem serve para tocar CDs de muacutesica no computador

CD

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3165

31

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

As unidades de DVD fazem o mesmo que as unidades de CD e tambeacutem lecircem DVDs Se vocecirc

tiver uma unidade de DVD poderaacute ver filmes no computador Muitas unidades de DVD podem

gravar dados em DVDs vazios

Dica

Se vocecirc tiver uma unidade de CD ou DVD gravaacutevel faccedila backup (copie) periodicamente de seus

arquivos importantes em CDs ou DVDs Dessa forma caso venha a ocorrer alguma falha no disco

riacutegido vocecirc natildeo perderaacute os dados

Unidade de disquete

As unidades de disquete armazenam informaccedilotildees em discos tambeacutem chamados discos

flexiacuteveis ou disquetes Comparado a CDs e DVDs os disquetes podem armazenar apenas uma

pequena quantidade de dados Eles tambeacutem recuperam informaccedilotildees de forma mais lenta e satildeo

mais vulneraacuteveis a danos Por esses motivos as unidades de disquete satildeo cada vez menosusadas embora ainda sejam incluiacutedas em alguns computadores

Disquete

Por que estes discos satildeo chamados de disquetes Apesar de a parte externa ser composta de

plaacutestico riacutegido isso eacute apenas a capa O interior do disco eacute feito de um material de vinil fino e

flexiacutevel

Mouse

Mouse eacute um pequeno dispositivo usado para apontar e selecionar itens na tela do computador

Embora existam mouses de vaacuterias formas o modelo mais comum se assemelha a um rato (como

diz o nome em inglecircs) Ele eacute pequeno e alongado sendo conectado agrave unidade de sistema por um

cabo comprido que faz lembrar uma cauda Alguns mouses mais novos satildeo sem fio

Mouse

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3265

32

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O mouse geralmente possui dois bototildees um botatildeo principal (normalmente o da esquerda) e um

botatildeo secundaacuterio Muitos mouses tambeacutem tecircm uma roda entre os dois bototildees que permite

percorrer as telas de informaccedilotildees

Ponteiros do mouse

Agrave medida que vocecirc move o mouse com a matildeo um ponteiro na tela se move na mesma direccedilatildeo

(A aparecircncia do ponteiro pode mudar dependendo da sua posiccedilatildeo na tela) Quando quiser

selecionar um item aponte para ele e clique no botatildeo principal ou seja pressione-o e solte-o

Apontar e clicar com o mouse eacute a principal maneira de interagir com o computador Para mais

informaccedilotildees consulte Usando o mouse

Teclado

A finalidade principal do teclado eacute digitar texto no computador Ele possui teclas para letras e

nuacutemeros exatamente como em uma maacutequina de escrever A diferenccedila estaacute nas teclas especiais

As teclas de funccedilatildeo localizadas na linha superior executam funccedilotildees diferentes dependendo

de onde satildeo usadas

O teclado numeacuterico localizado agrave direita na maioria dos teclados permite inserir nuacutemeros

rapidamente

As teclas de navegaccedilatildeo como as teclas de seta permitem mover sua posiccedilatildeo dentro de

documentos ou paacuteginas da Web

Teclado

Vocecirc tambeacutem pode usar o teclado para executar muitas das mesmas tarefas que executa com

um mouse Para mais informaccedilotildees consulte Usando o teclado

Monitor

O monitor exibe informaccedilotildees em forma visual usando texto e elementos graacuteficos A parte do

monitor que exibe as informaccedilotildees eacute chamada tela Como a tela de uma televisatildeo a tela de um

computador pode mostrar imagens paradas ou em movimento

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3365

33

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Existem dois tipos baacutesicos de monitores CRT (tubo de raios catoacutedicos) e LCD (viacutedeo de cristal

liacutequido) Ambos produzem imagens niacutetidas mas os monitores LCD levam vantagem por serem

mais finos e mais leves

Monitor LCD (agrave esquerda) monitor CRT (agrave direita)

Impressora

Uma impressora transfere dados de um computador para o papel Vocecirc natildeo precisa de

impressora para usar o computador mas se tiver uma poderaacute imprimir emails cartotildees convites

anuacutencios e outros materiais Muitas pessoas tambeacutem preferem imprimir suas fotos em casa

Os dois principais tipos de impressora satildeo a jato de tinta e a laser As impressoras a jato de tinta

satildeo as mais populares para uso domeacutestico Elas podem imprimir em preto e branco ou em cores

e produzem fotos de alta qualidade quando usadas com papel especial As impressoras a laser

satildeo mais raacutepidas e mais adequadas para uso intenso

Impressora a jato de tinta (agrave esquerda) impressora a laser (agrave direita)

Alto-falantes

Os alto-falantes satildeo usados para tocar som Eles podem vir embutidos na unidade de sistema ou

ser conectados com cabos Satildeo eles que permitem ouvir muacutesica e efeitos de som no computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3465

34

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Alto-falantes do computador

Modem

Para conectar o computador agrave Internet vocecirc precisa de um modem um dispositivo que envia e

recebe informaccedilotildees do computador por linha telefocircnica ou cabo de alta velocidade Agraves vezes os

modems vecircm embutidos na unidade de sistema mas os de alta velocidade normalmente satildeo

componentes separados

Modem a cabo

O QUE Eacute O SOFTWARE

O Software eacute uma aplicaccedilatildeo ou programa do computador escrita numa determinadalinguagem interpretaacutevel por uma determinada maacutequina (o processador de um computador ou

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3565

35

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

outro equipamento) e que permite executar determinadas tarefas para as quais o software foi

projetado Estes programas satildeo compostos por uma sequecircncia de instruccedilotildees (os comandos) e de

declaraccedilotildees de dados as quais satildeo armazenaacuteveis num meio digital

Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por um

computador com o objetivo de executar tarefas especiacuteficas Tambeacutem pode ser definido como

os programas que comandam o funcionamento de um computador

Em um computador o software eacute classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer

instruccedilotildees para o hardware O hardware eacute toda a parte fiacutesica que constitui o computador por

exemplo a CPU a memoacuteria e os dispositivos de entrada e saiacuteda O software eacute constituiacutedo por

todos os programas que existem para um referido sistema quer sejam produzidos pelo proacuteprio

utente ou pelo fabricante do computador

O termo inglecircs software foi usado pela primeira vez em 1958 em um artigo escrito pelo cientistaamericano John Wilder Tukey Foi tambeacutem ele o responsaacutevel por introduzir o termo bit para

designar diacutegito binaacuterio

Os softwares podem ser classificados como

SOFTWARE DE SISTEMA

Geralmente dividido em SISTEMAS OPERACIONAIS e PROGRAMAS UTILITAacuteRIOS Para

comeccedilar os Sist Operacionais satildeo de grande importacircncia pois eles nos datildeo a opccedilatildeo de dizer ao

computador o que ele deve fazer Dois exemplos bastante conhecidos do nosso puacuteblico satildeoo Mac o Windows e o Linux Os Programas utilitaacuterios geralmente satildeo softwares de menor porte

com funccedilotildees mais especificas tipo Verificaccedilatildeo de Disco Coacutepias de Seguranccedila entre outros

SOFTWARE APLICATIVO

Neste tipo de software se enquadram todos aqueles programas que satildeo utilizados na execuccedilatildeo

de tarefas especiacuteficas Posso citar vaacuterios exemplos mas os mais comuns satildeo os processadores

de texto como o Word que servem para trabalhar com os mais diversos tipos de textos emitir

etiquetas e fazer formulaacuterios as planilhas eletrocircnicas como o Excel satildeo poderosas ferramentas

de caacutelculos que facilitam tanto aquele trabalho aacuterduo de matemaacutetica fazer graacuteficos com real

representaccedilatildeo dos dados eacute uma coisa muito boa pra quem precisa e por uacuteltimo o que muitos

usam mas natildeo sabem o nome ao certo que satildeo os Browsers ou Navegadores softwares usados

para navegar na Web dentre eles os mais conhecidos atualmente satildeo Windows Internet

Explorer Firefox Google Chrome Opera e Safaacuteri

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3665

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3765

37

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

hoje eles satildeo bastante usados em situaccedilotildees de treinamentos de pessoas para enfrentar casos no

seu dia-a-dia

SOFTWARE DE JOGOS

Geralmente satildeo softwares relacionados a entretenimento para proporcionar lazer e diversatildeo

Dispotildeem de muitos recursos interativos e existem de todos os tipos desde estrateacutegias ateacute

simulaccedilotildees reais de muitas coisas como corridas (Need for Speed) ateacute mesmo de vida como o

Second Life

SOFTWARES ABERTOS

Satildeo aqueles que permitem que o usuaacuterio produza com liberdade e criatividade se classificam

nessa categoria aqueles softwares de apresentaccedilotildees bancos de dados e vaacuterios outros

Para fixar

Descreva uma definiccedilatildeo para os tipos de softwares

Software de Sistema_____________________________________________________________

Software Aplicativo ______________________________________________________________

Software de Linguagem __________________________________________________________

Software abertos _______________________________________________________________

Capiacutetulo 4 - Conceitos Baacutesicos de Banco de Dados

Segundo Korth um banco de dados ldquoeacute uma coleccedilatildeo de dados inter -relacionados

representando informaccedilotildees sobre um domiacutenio especiacuteficordquo ou seja sempre que for possiacutevel

agrupar informaccedilotildees que se relacionam e tratam de um mesmo assunto posso dizer que tenho

um banco de dados

Podemos exemplificar situaccedilotildees claacutessicas como uma lista telefocircnica um cataacutelogo de CDs ou um

sistema de controle de RH de uma empresa

Jaacute um sistema de gerenciamento de banco de dados (SGBD) eacute um software que possui

recursos capazes de manipular as informaccedilotildees do banco de dados e interagir com o usuaacuterio

Exemplos de SGBDs satildeo Oracle SQL Server DB2 PostgreSQL MySQL o proacuteprio Access ouParadox entre outros

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3865

38

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Por uacuteltimo temos que conceituar um sistema de banco de dados como o conjunto de quatro

componentes baacutesicos dados hardware software e usuaacuterios Date conceituou que ldquosistema de

bancos de dados pode ser considerado como uma sala de arquivos eletrocircnicardquo A Figura 1 ilustra

os componentes de um sistema de banco de dados

Componentes de um sistema de banco de dados

Os objetivos de um sistema de banco de dados satildeo o de isolar o usuaacuterio dos detalhes

internos do banco de dados (promover a abstraccedilatildeo de dados) e promover a independecircncia dos

dados em relaccedilatildeo agraves aplicaccedilotildees ou seja tornar independente da aplicaccedilatildeo a estrateacutegia de

acesso e a forma de armazenamento

Abstraccedilatildeo de dados

O sistema de banco de dados deve garantir uma visatildeo totalmente abstrata do banco de

dados para o usuaacuterio ou seja para o usuaacuterio do banco de dados pouco importa qual unidade de

armazenamento estaacute sendo usada para guardar seus dados contanto que os mesmos estejam

disponiacuteveis no momento necessaacuterio

Esta abstraccedilatildeo se daacute em trecircs niacuteveis (Figura 2) Niacutevel de visatildeo do usuaacuterio as partes do banco de dados que o usuaacuterio tem acesso de

acordo com a necessidade individual de cada usuaacuterio ou grupo de usuaacuterios

Niacutevel conceitual define quais os dados que estatildeo armazenados e qual o relacionamento

entre eles

Niacutevel fiacutesico eacute o niacutevel mais baixo de abstraccedilatildeo em que define efetivamente de que maneira

os dados estatildeo armazenados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3965

39

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 2 Niacuteveis de abstraccedilatildeo

Projeto de banco de dados

Todo bom sistema de banco de dados deve apresentar um projeto que visa a organizaccedilatildeo das

informaccedilotildees e utilizaccedilatildeo de teacutecnicas para que o futuro sistema obtenha boa performance e

tambeacutem facilite infinitamente as manutenccedilotildees que venham a acontecer

O projeto de banco de dados se daacute em duas fases

Modelagem conceitual Projeto loacutegico

Estas duas etapas se referem a um sistema de banco de dados ainda natildeo implementado ou seja

que ainda natildeo exista um novo projeto Para os casos em que o banco de dados jaacute exista mas eacute

um sistema legado por exemplo ou um sistema muito antigo sem documentaccedilatildeo o processo de

projeto de banco de dados se daraacute atraveacutes da utilizaccedilatildeo de uma teacutecnica chamada de Engenharia

Reversa que seraacute visto em outra oportunidade

Modelo conceitual

Eacute a descriccedilatildeo do BD de maneira independente ao SGBD ou seja define quais os dados

que apareceratildeo no BD mas sem se importar com a implementaccedilatildeo que se daraacute ao BD Desta

forma haacute uma abstraccedilatildeo em niacutevel de SGBD

Uma das teacutecnicas mais utilizadas dentre os profissionais da aacuterea eacute a abordagem entidade-

relacionamento (ER) onde o modelo eacute representado graficamente atraveacutes do diagrama entidade-

relacionamento (DER) (Figura 3)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 30: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3065

30

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Armazenamento

O computador possui uma ou mais unidades de disco ou seja dispositivos que armazenam

informaccedilotildees em um disco de plaacutestico ou de metal O disco preserva as informaccedilotildees mesmo

quando o computador estaacute desligado

Unidade de disco riacutegido

A unidade de disco riacutegido do computador armazena informaccedilotildees em um disco riacutegido que eacute um

prato riacutegido ou pilha de pratos com uma superfiacutecie magneacutetica Como os discos riacutegidos podem

reter uma grande quantidade de informaccedilotildees normalmente eles funcionam como principal meio

de armazenamento do computador guardando praticamente todos os programas e arquivos Em

geral a unidade de disco riacutegido fica localizada dentro da unidade de sistema

Unidade de disco riacutegidoUnidades de CD e DVD

Hoje em dia quase todos os computadores vecircm equipados com uma unidade de CD ou DVD

geralmente localizada na frente da unidade de sistema As unidades de CD usam lasers para ler

(recuperar) dados de um CD Muitas delas tambeacutem podem gravar dados em CDs Se vocecirc tiver

uma unidade de disco gravaacutevel poderaacute armazenar coacutepias de seus arquivos em CDs vazios A

unidade de CD tambeacutem serve para tocar CDs de muacutesica no computador

CD

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3165

31

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

As unidades de DVD fazem o mesmo que as unidades de CD e tambeacutem lecircem DVDs Se vocecirc

tiver uma unidade de DVD poderaacute ver filmes no computador Muitas unidades de DVD podem

gravar dados em DVDs vazios

Dica

Se vocecirc tiver uma unidade de CD ou DVD gravaacutevel faccedila backup (copie) periodicamente de seus

arquivos importantes em CDs ou DVDs Dessa forma caso venha a ocorrer alguma falha no disco

riacutegido vocecirc natildeo perderaacute os dados

Unidade de disquete

As unidades de disquete armazenam informaccedilotildees em discos tambeacutem chamados discos

flexiacuteveis ou disquetes Comparado a CDs e DVDs os disquetes podem armazenar apenas uma

pequena quantidade de dados Eles tambeacutem recuperam informaccedilotildees de forma mais lenta e satildeo

mais vulneraacuteveis a danos Por esses motivos as unidades de disquete satildeo cada vez menosusadas embora ainda sejam incluiacutedas em alguns computadores

Disquete

Por que estes discos satildeo chamados de disquetes Apesar de a parte externa ser composta de

plaacutestico riacutegido isso eacute apenas a capa O interior do disco eacute feito de um material de vinil fino e

flexiacutevel

Mouse

Mouse eacute um pequeno dispositivo usado para apontar e selecionar itens na tela do computador

Embora existam mouses de vaacuterias formas o modelo mais comum se assemelha a um rato (como

diz o nome em inglecircs) Ele eacute pequeno e alongado sendo conectado agrave unidade de sistema por um

cabo comprido que faz lembrar uma cauda Alguns mouses mais novos satildeo sem fio

Mouse

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3265

32

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O mouse geralmente possui dois bototildees um botatildeo principal (normalmente o da esquerda) e um

botatildeo secundaacuterio Muitos mouses tambeacutem tecircm uma roda entre os dois bototildees que permite

percorrer as telas de informaccedilotildees

Ponteiros do mouse

Agrave medida que vocecirc move o mouse com a matildeo um ponteiro na tela se move na mesma direccedilatildeo

(A aparecircncia do ponteiro pode mudar dependendo da sua posiccedilatildeo na tela) Quando quiser

selecionar um item aponte para ele e clique no botatildeo principal ou seja pressione-o e solte-o

Apontar e clicar com o mouse eacute a principal maneira de interagir com o computador Para mais

informaccedilotildees consulte Usando o mouse

Teclado

A finalidade principal do teclado eacute digitar texto no computador Ele possui teclas para letras e

nuacutemeros exatamente como em uma maacutequina de escrever A diferenccedila estaacute nas teclas especiais

As teclas de funccedilatildeo localizadas na linha superior executam funccedilotildees diferentes dependendo

de onde satildeo usadas

O teclado numeacuterico localizado agrave direita na maioria dos teclados permite inserir nuacutemeros

rapidamente

As teclas de navegaccedilatildeo como as teclas de seta permitem mover sua posiccedilatildeo dentro de

documentos ou paacuteginas da Web

Teclado

Vocecirc tambeacutem pode usar o teclado para executar muitas das mesmas tarefas que executa com

um mouse Para mais informaccedilotildees consulte Usando o teclado

Monitor

O monitor exibe informaccedilotildees em forma visual usando texto e elementos graacuteficos A parte do

monitor que exibe as informaccedilotildees eacute chamada tela Como a tela de uma televisatildeo a tela de um

computador pode mostrar imagens paradas ou em movimento

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3365

33

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Existem dois tipos baacutesicos de monitores CRT (tubo de raios catoacutedicos) e LCD (viacutedeo de cristal

liacutequido) Ambos produzem imagens niacutetidas mas os monitores LCD levam vantagem por serem

mais finos e mais leves

Monitor LCD (agrave esquerda) monitor CRT (agrave direita)

Impressora

Uma impressora transfere dados de um computador para o papel Vocecirc natildeo precisa de

impressora para usar o computador mas se tiver uma poderaacute imprimir emails cartotildees convites

anuacutencios e outros materiais Muitas pessoas tambeacutem preferem imprimir suas fotos em casa

Os dois principais tipos de impressora satildeo a jato de tinta e a laser As impressoras a jato de tinta

satildeo as mais populares para uso domeacutestico Elas podem imprimir em preto e branco ou em cores

e produzem fotos de alta qualidade quando usadas com papel especial As impressoras a laser

satildeo mais raacutepidas e mais adequadas para uso intenso

Impressora a jato de tinta (agrave esquerda) impressora a laser (agrave direita)

Alto-falantes

Os alto-falantes satildeo usados para tocar som Eles podem vir embutidos na unidade de sistema ou

ser conectados com cabos Satildeo eles que permitem ouvir muacutesica e efeitos de som no computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3465

34

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Alto-falantes do computador

Modem

Para conectar o computador agrave Internet vocecirc precisa de um modem um dispositivo que envia e

recebe informaccedilotildees do computador por linha telefocircnica ou cabo de alta velocidade Agraves vezes os

modems vecircm embutidos na unidade de sistema mas os de alta velocidade normalmente satildeo

componentes separados

Modem a cabo

O QUE Eacute O SOFTWARE

O Software eacute uma aplicaccedilatildeo ou programa do computador escrita numa determinadalinguagem interpretaacutevel por uma determinada maacutequina (o processador de um computador ou

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3565

35

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

outro equipamento) e que permite executar determinadas tarefas para as quais o software foi

projetado Estes programas satildeo compostos por uma sequecircncia de instruccedilotildees (os comandos) e de

declaraccedilotildees de dados as quais satildeo armazenaacuteveis num meio digital

Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por um

computador com o objetivo de executar tarefas especiacuteficas Tambeacutem pode ser definido como

os programas que comandam o funcionamento de um computador

Em um computador o software eacute classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer

instruccedilotildees para o hardware O hardware eacute toda a parte fiacutesica que constitui o computador por

exemplo a CPU a memoacuteria e os dispositivos de entrada e saiacuteda O software eacute constituiacutedo por

todos os programas que existem para um referido sistema quer sejam produzidos pelo proacuteprio

utente ou pelo fabricante do computador

O termo inglecircs software foi usado pela primeira vez em 1958 em um artigo escrito pelo cientistaamericano John Wilder Tukey Foi tambeacutem ele o responsaacutevel por introduzir o termo bit para

designar diacutegito binaacuterio

Os softwares podem ser classificados como

SOFTWARE DE SISTEMA

Geralmente dividido em SISTEMAS OPERACIONAIS e PROGRAMAS UTILITAacuteRIOS Para

comeccedilar os Sist Operacionais satildeo de grande importacircncia pois eles nos datildeo a opccedilatildeo de dizer ao

computador o que ele deve fazer Dois exemplos bastante conhecidos do nosso puacuteblico satildeoo Mac o Windows e o Linux Os Programas utilitaacuterios geralmente satildeo softwares de menor porte

com funccedilotildees mais especificas tipo Verificaccedilatildeo de Disco Coacutepias de Seguranccedila entre outros

SOFTWARE APLICATIVO

Neste tipo de software se enquadram todos aqueles programas que satildeo utilizados na execuccedilatildeo

de tarefas especiacuteficas Posso citar vaacuterios exemplos mas os mais comuns satildeo os processadores

de texto como o Word que servem para trabalhar com os mais diversos tipos de textos emitir

etiquetas e fazer formulaacuterios as planilhas eletrocircnicas como o Excel satildeo poderosas ferramentas

de caacutelculos que facilitam tanto aquele trabalho aacuterduo de matemaacutetica fazer graacuteficos com real

representaccedilatildeo dos dados eacute uma coisa muito boa pra quem precisa e por uacuteltimo o que muitos

usam mas natildeo sabem o nome ao certo que satildeo os Browsers ou Navegadores softwares usados

para navegar na Web dentre eles os mais conhecidos atualmente satildeo Windows Internet

Explorer Firefox Google Chrome Opera e Safaacuteri

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3665

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3765

37

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

hoje eles satildeo bastante usados em situaccedilotildees de treinamentos de pessoas para enfrentar casos no

seu dia-a-dia

SOFTWARE DE JOGOS

Geralmente satildeo softwares relacionados a entretenimento para proporcionar lazer e diversatildeo

Dispotildeem de muitos recursos interativos e existem de todos os tipos desde estrateacutegias ateacute

simulaccedilotildees reais de muitas coisas como corridas (Need for Speed) ateacute mesmo de vida como o

Second Life

SOFTWARES ABERTOS

Satildeo aqueles que permitem que o usuaacuterio produza com liberdade e criatividade se classificam

nessa categoria aqueles softwares de apresentaccedilotildees bancos de dados e vaacuterios outros

Para fixar

Descreva uma definiccedilatildeo para os tipos de softwares

Software de Sistema_____________________________________________________________

Software Aplicativo ______________________________________________________________

Software de Linguagem __________________________________________________________

Software abertos _______________________________________________________________

Capiacutetulo 4 - Conceitos Baacutesicos de Banco de Dados

Segundo Korth um banco de dados ldquoeacute uma coleccedilatildeo de dados inter -relacionados

representando informaccedilotildees sobre um domiacutenio especiacuteficordquo ou seja sempre que for possiacutevel

agrupar informaccedilotildees que se relacionam e tratam de um mesmo assunto posso dizer que tenho

um banco de dados

Podemos exemplificar situaccedilotildees claacutessicas como uma lista telefocircnica um cataacutelogo de CDs ou um

sistema de controle de RH de uma empresa

Jaacute um sistema de gerenciamento de banco de dados (SGBD) eacute um software que possui

recursos capazes de manipular as informaccedilotildees do banco de dados e interagir com o usuaacuterio

Exemplos de SGBDs satildeo Oracle SQL Server DB2 PostgreSQL MySQL o proacuteprio Access ouParadox entre outros

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3865

38

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Por uacuteltimo temos que conceituar um sistema de banco de dados como o conjunto de quatro

componentes baacutesicos dados hardware software e usuaacuterios Date conceituou que ldquosistema de

bancos de dados pode ser considerado como uma sala de arquivos eletrocircnicardquo A Figura 1 ilustra

os componentes de um sistema de banco de dados

Componentes de um sistema de banco de dados

Os objetivos de um sistema de banco de dados satildeo o de isolar o usuaacuterio dos detalhes

internos do banco de dados (promover a abstraccedilatildeo de dados) e promover a independecircncia dos

dados em relaccedilatildeo agraves aplicaccedilotildees ou seja tornar independente da aplicaccedilatildeo a estrateacutegia de

acesso e a forma de armazenamento

Abstraccedilatildeo de dados

O sistema de banco de dados deve garantir uma visatildeo totalmente abstrata do banco de

dados para o usuaacuterio ou seja para o usuaacuterio do banco de dados pouco importa qual unidade de

armazenamento estaacute sendo usada para guardar seus dados contanto que os mesmos estejam

disponiacuteveis no momento necessaacuterio

Esta abstraccedilatildeo se daacute em trecircs niacuteveis (Figura 2) Niacutevel de visatildeo do usuaacuterio as partes do banco de dados que o usuaacuterio tem acesso de

acordo com a necessidade individual de cada usuaacuterio ou grupo de usuaacuterios

Niacutevel conceitual define quais os dados que estatildeo armazenados e qual o relacionamento

entre eles

Niacutevel fiacutesico eacute o niacutevel mais baixo de abstraccedilatildeo em que define efetivamente de que maneira

os dados estatildeo armazenados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3965

39

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 2 Niacuteveis de abstraccedilatildeo

Projeto de banco de dados

Todo bom sistema de banco de dados deve apresentar um projeto que visa a organizaccedilatildeo das

informaccedilotildees e utilizaccedilatildeo de teacutecnicas para que o futuro sistema obtenha boa performance e

tambeacutem facilite infinitamente as manutenccedilotildees que venham a acontecer

O projeto de banco de dados se daacute em duas fases

Modelagem conceitual Projeto loacutegico

Estas duas etapas se referem a um sistema de banco de dados ainda natildeo implementado ou seja

que ainda natildeo exista um novo projeto Para os casos em que o banco de dados jaacute exista mas eacute

um sistema legado por exemplo ou um sistema muito antigo sem documentaccedilatildeo o processo de

projeto de banco de dados se daraacute atraveacutes da utilizaccedilatildeo de uma teacutecnica chamada de Engenharia

Reversa que seraacute visto em outra oportunidade

Modelo conceitual

Eacute a descriccedilatildeo do BD de maneira independente ao SGBD ou seja define quais os dados

que apareceratildeo no BD mas sem se importar com a implementaccedilatildeo que se daraacute ao BD Desta

forma haacute uma abstraccedilatildeo em niacutevel de SGBD

Uma das teacutecnicas mais utilizadas dentre os profissionais da aacuterea eacute a abordagem entidade-

relacionamento (ER) onde o modelo eacute representado graficamente atraveacutes do diagrama entidade-

relacionamento (DER) (Figura 3)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 31: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3165

31

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

As unidades de DVD fazem o mesmo que as unidades de CD e tambeacutem lecircem DVDs Se vocecirc

tiver uma unidade de DVD poderaacute ver filmes no computador Muitas unidades de DVD podem

gravar dados em DVDs vazios

Dica

Se vocecirc tiver uma unidade de CD ou DVD gravaacutevel faccedila backup (copie) periodicamente de seus

arquivos importantes em CDs ou DVDs Dessa forma caso venha a ocorrer alguma falha no disco

riacutegido vocecirc natildeo perderaacute os dados

Unidade de disquete

As unidades de disquete armazenam informaccedilotildees em discos tambeacutem chamados discos

flexiacuteveis ou disquetes Comparado a CDs e DVDs os disquetes podem armazenar apenas uma

pequena quantidade de dados Eles tambeacutem recuperam informaccedilotildees de forma mais lenta e satildeo

mais vulneraacuteveis a danos Por esses motivos as unidades de disquete satildeo cada vez menosusadas embora ainda sejam incluiacutedas em alguns computadores

Disquete

Por que estes discos satildeo chamados de disquetes Apesar de a parte externa ser composta de

plaacutestico riacutegido isso eacute apenas a capa O interior do disco eacute feito de um material de vinil fino e

flexiacutevel

Mouse

Mouse eacute um pequeno dispositivo usado para apontar e selecionar itens na tela do computador

Embora existam mouses de vaacuterias formas o modelo mais comum se assemelha a um rato (como

diz o nome em inglecircs) Ele eacute pequeno e alongado sendo conectado agrave unidade de sistema por um

cabo comprido que faz lembrar uma cauda Alguns mouses mais novos satildeo sem fio

Mouse

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3265

32

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O mouse geralmente possui dois bototildees um botatildeo principal (normalmente o da esquerda) e um

botatildeo secundaacuterio Muitos mouses tambeacutem tecircm uma roda entre os dois bototildees que permite

percorrer as telas de informaccedilotildees

Ponteiros do mouse

Agrave medida que vocecirc move o mouse com a matildeo um ponteiro na tela se move na mesma direccedilatildeo

(A aparecircncia do ponteiro pode mudar dependendo da sua posiccedilatildeo na tela) Quando quiser

selecionar um item aponte para ele e clique no botatildeo principal ou seja pressione-o e solte-o

Apontar e clicar com o mouse eacute a principal maneira de interagir com o computador Para mais

informaccedilotildees consulte Usando o mouse

Teclado

A finalidade principal do teclado eacute digitar texto no computador Ele possui teclas para letras e

nuacutemeros exatamente como em uma maacutequina de escrever A diferenccedila estaacute nas teclas especiais

As teclas de funccedilatildeo localizadas na linha superior executam funccedilotildees diferentes dependendo

de onde satildeo usadas

O teclado numeacuterico localizado agrave direita na maioria dos teclados permite inserir nuacutemeros

rapidamente

As teclas de navegaccedilatildeo como as teclas de seta permitem mover sua posiccedilatildeo dentro de

documentos ou paacuteginas da Web

Teclado

Vocecirc tambeacutem pode usar o teclado para executar muitas das mesmas tarefas que executa com

um mouse Para mais informaccedilotildees consulte Usando o teclado

Monitor

O monitor exibe informaccedilotildees em forma visual usando texto e elementos graacuteficos A parte do

monitor que exibe as informaccedilotildees eacute chamada tela Como a tela de uma televisatildeo a tela de um

computador pode mostrar imagens paradas ou em movimento

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3365

33

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Existem dois tipos baacutesicos de monitores CRT (tubo de raios catoacutedicos) e LCD (viacutedeo de cristal

liacutequido) Ambos produzem imagens niacutetidas mas os monitores LCD levam vantagem por serem

mais finos e mais leves

Monitor LCD (agrave esquerda) monitor CRT (agrave direita)

Impressora

Uma impressora transfere dados de um computador para o papel Vocecirc natildeo precisa de

impressora para usar o computador mas se tiver uma poderaacute imprimir emails cartotildees convites

anuacutencios e outros materiais Muitas pessoas tambeacutem preferem imprimir suas fotos em casa

Os dois principais tipos de impressora satildeo a jato de tinta e a laser As impressoras a jato de tinta

satildeo as mais populares para uso domeacutestico Elas podem imprimir em preto e branco ou em cores

e produzem fotos de alta qualidade quando usadas com papel especial As impressoras a laser

satildeo mais raacutepidas e mais adequadas para uso intenso

Impressora a jato de tinta (agrave esquerda) impressora a laser (agrave direita)

Alto-falantes

Os alto-falantes satildeo usados para tocar som Eles podem vir embutidos na unidade de sistema ou

ser conectados com cabos Satildeo eles que permitem ouvir muacutesica e efeitos de som no computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3465

34

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Alto-falantes do computador

Modem

Para conectar o computador agrave Internet vocecirc precisa de um modem um dispositivo que envia e

recebe informaccedilotildees do computador por linha telefocircnica ou cabo de alta velocidade Agraves vezes os

modems vecircm embutidos na unidade de sistema mas os de alta velocidade normalmente satildeo

componentes separados

Modem a cabo

O QUE Eacute O SOFTWARE

O Software eacute uma aplicaccedilatildeo ou programa do computador escrita numa determinadalinguagem interpretaacutevel por uma determinada maacutequina (o processador de um computador ou

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3565

35

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

outro equipamento) e que permite executar determinadas tarefas para as quais o software foi

projetado Estes programas satildeo compostos por uma sequecircncia de instruccedilotildees (os comandos) e de

declaraccedilotildees de dados as quais satildeo armazenaacuteveis num meio digital

Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por um

computador com o objetivo de executar tarefas especiacuteficas Tambeacutem pode ser definido como

os programas que comandam o funcionamento de um computador

Em um computador o software eacute classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer

instruccedilotildees para o hardware O hardware eacute toda a parte fiacutesica que constitui o computador por

exemplo a CPU a memoacuteria e os dispositivos de entrada e saiacuteda O software eacute constituiacutedo por

todos os programas que existem para um referido sistema quer sejam produzidos pelo proacuteprio

utente ou pelo fabricante do computador

O termo inglecircs software foi usado pela primeira vez em 1958 em um artigo escrito pelo cientistaamericano John Wilder Tukey Foi tambeacutem ele o responsaacutevel por introduzir o termo bit para

designar diacutegito binaacuterio

Os softwares podem ser classificados como

SOFTWARE DE SISTEMA

Geralmente dividido em SISTEMAS OPERACIONAIS e PROGRAMAS UTILITAacuteRIOS Para

comeccedilar os Sist Operacionais satildeo de grande importacircncia pois eles nos datildeo a opccedilatildeo de dizer ao

computador o que ele deve fazer Dois exemplos bastante conhecidos do nosso puacuteblico satildeoo Mac o Windows e o Linux Os Programas utilitaacuterios geralmente satildeo softwares de menor porte

com funccedilotildees mais especificas tipo Verificaccedilatildeo de Disco Coacutepias de Seguranccedila entre outros

SOFTWARE APLICATIVO

Neste tipo de software se enquadram todos aqueles programas que satildeo utilizados na execuccedilatildeo

de tarefas especiacuteficas Posso citar vaacuterios exemplos mas os mais comuns satildeo os processadores

de texto como o Word que servem para trabalhar com os mais diversos tipos de textos emitir

etiquetas e fazer formulaacuterios as planilhas eletrocircnicas como o Excel satildeo poderosas ferramentas

de caacutelculos que facilitam tanto aquele trabalho aacuterduo de matemaacutetica fazer graacuteficos com real

representaccedilatildeo dos dados eacute uma coisa muito boa pra quem precisa e por uacuteltimo o que muitos

usam mas natildeo sabem o nome ao certo que satildeo os Browsers ou Navegadores softwares usados

para navegar na Web dentre eles os mais conhecidos atualmente satildeo Windows Internet

Explorer Firefox Google Chrome Opera e Safaacuteri

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3665

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3765

37

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

hoje eles satildeo bastante usados em situaccedilotildees de treinamentos de pessoas para enfrentar casos no

seu dia-a-dia

SOFTWARE DE JOGOS

Geralmente satildeo softwares relacionados a entretenimento para proporcionar lazer e diversatildeo

Dispotildeem de muitos recursos interativos e existem de todos os tipos desde estrateacutegias ateacute

simulaccedilotildees reais de muitas coisas como corridas (Need for Speed) ateacute mesmo de vida como o

Second Life

SOFTWARES ABERTOS

Satildeo aqueles que permitem que o usuaacuterio produza com liberdade e criatividade se classificam

nessa categoria aqueles softwares de apresentaccedilotildees bancos de dados e vaacuterios outros

Para fixar

Descreva uma definiccedilatildeo para os tipos de softwares

Software de Sistema_____________________________________________________________

Software Aplicativo ______________________________________________________________

Software de Linguagem __________________________________________________________

Software abertos _______________________________________________________________

Capiacutetulo 4 - Conceitos Baacutesicos de Banco de Dados

Segundo Korth um banco de dados ldquoeacute uma coleccedilatildeo de dados inter -relacionados

representando informaccedilotildees sobre um domiacutenio especiacuteficordquo ou seja sempre que for possiacutevel

agrupar informaccedilotildees que se relacionam e tratam de um mesmo assunto posso dizer que tenho

um banco de dados

Podemos exemplificar situaccedilotildees claacutessicas como uma lista telefocircnica um cataacutelogo de CDs ou um

sistema de controle de RH de uma empresa

Jaacute um sistema de gerenciamento de banco de dados (SGBD) eacute um software que possui

recursos capazes de manipular as informaccedilotildees do banco de dados e interagir com o usuaacuterio

Exemplos de SGBDs satildeo Oracle SQL Server DB2 PostgreSQL MySQL o proacuteprio Access ouParadox entre outros

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3865

38

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Por uacuteltimo temos que conceituar um sistema de banco de dados como o conjunto de quatro

componentes baacutesicos dados hardware software e usuaacuterios Date conceituou que ldquosistema de

bancos de dados pode ser considerado como uma sala de arquivos eletrocircnicardquo A Figura 1 ilustra

os componentes de um sistema de banco de dados

Componentes de um sistema de banco de dados

Os objetivos de um sistema de banco de dados satildeo o de isolar o usuaacuterio dos detalhes

internos do banco de dados (promover a abstraccedilatildeo de dados) e promover a independecircncia dos

dados em relaccedilatildeo agraves aplicaccedilotildees ou seja tornar independente da aplicaccedilatildeo a estrateacutegia de

acesso e a forma de armazenamento

Abstraccedilatildeo de dados

O sistema de banco de dados deve garantir uma visatildeo totalmente abstrata do banco de

dados para o usuaacuterio ou seja para o usuaacuterio do banco de dados pouco importa qual unidade de

armazenamento estaacute sendo usada para guardar seus dados contanto que os mesmos estejam

disponiacuteveis no momento necessaacuterio

Esta abstraccedilatildeo se daacute em trecircs niacuteveis (Figura 2) Niacutevel de visatildeo do usuaacuterio as partes do banco de dados que o usuaacuterio tem acesso de

acordo com a necessidade individual de cada usuaacuterio ou grupo de usuaacuterios

Niacutevel conceitual define quais os dados que estatildeo armazenados e qual o relacionamento

entre eles

Niacutevel fiacutesico eacute o niacutevel mais baixo de abstraccedilatildeo em que define efetivamente de que maneira

os dados estatildeo armazenados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3965

39

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 2 Niacuteveis de abstraccedilatildeo

Projeto de banco de dados

Todo bom sistema de banco de dados deve apresentar um projeto que visa a organizaccedilatildeo das

informaccedilotildees e utilizaccedilatildeo de teacutecnicas para que o futuro sistema obtenha boa performance e

tambeacutem facilite infinitamente as manutenccedilotildees que venham a acontecer

O projeto de banco de dados se daacute em duas fases

Modelagem conceitual Projeto loacutegico

Estas duas etapas se referem a um sistema de banco de dados ainda natildeo implementado ou seja

que ainda natildeo exista um novo projeto Para os casos em que o banco de dados jaacute exista mas eacute

um sistema legado por exemplo ou um sistema muito antigo sem documentaccedilatildeo o processo de

projeto de banco de dados se daraacute atraveacutes da utilizaccedilatildeo de uma teacutecnica chamada de Engenharia

Reversa que seraacute visto em outra oportunidade

Modelo conceitual

Eacute a descriccedilatildeo do BD de maneira independente ao SGBD ou seja define quais os dados

que apareceratildeo no BD mas sem se importar com a implementaccedilatildeo que se daraacute ao BD Desta

forma haacute uma abstraccedilatildeo em niacutevel de SGBD

Uma das teacutecnicas mais utilizadas dentre os profissionais da aacuterea eacute a abordagem entidade-

relacionamento (ER) onde o modelo eacute representado graficamente atraveacutes do diagrama entidade-

relacionamento (DER) (Figura 3)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 32: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3265

32

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O mouse geralmente possui dois bototildees um botatildeo principal (normalmente o da esquerda) e um

botatildeo secundaacuterio Muitos mouses tambeacutem tecircm uma roda entre os dois bototildees que permite

percorrer as telas de informaccedilotildees

Ponteiros do mouse

Agrave medida que vocecirc move o mouse com a matildeo um ponteiro na tela se move na mesma direccedilatildeo

(A aparecircncia do ponteiro pode mudar dependendo da sua posiccedilatildeo na tela) Quando quiser

selecionar um item aponte para ele e clique no botatildeo principal ou seja pressione-o e solte-o

Apontar e clicar com o mouse eacute a principal maneira de interagir com o computador Para mais

informaccedilotildees consulte Usando o mouse

Teclado

A finalidade principal do teclado eacute digitar texto no computador Ele possui teclas para letras e

nuacutemeros exatamente como em uma maacutequina de escrever A diferenccedila estaacute nas teclas especiais

As teclas de funccedilatildeo localizadas na linha superior executam funccedilotildees diferentes dependendo

de onde satildeo usadas

O teclado numeacuterico localizado agrave direita na maioria dos teclados permite inserir nuacutemeros

rapidamente

As teclas de navegaccedilatildeo como as teclas de seta permitem mover sua posiccedilatildeo dentro de

documentos ou paacuteginas da Web

Teclado

Vocecirc tambeacutem pode usar o teclado para executar muitas das mesmas tarefas que executa com

um mouse Para mais informaccedilotildees consulte Usando o teclado

Monitor

O monitor exibe informaccedilotildees em forma visual usando texto e elementos graacuteficos A parte do

monitor que exibe as informaccedilotildees eacute chamada tela Como a tela de uma televisatildeo a tela de um

computador pode mostrar imagens paradas ou em movimento

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3365

33

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Existem dois tipos baacutesicos de monitores CRT (tubo de raios catoacutedicos) e LCD (viacutedeo de cristal

liacutequido) Ambos produzem imagens niacutetidas mas os monitores LCD levam vantagem por serem

mais finos e mais leves

Monitor LCD (agrave esquerda) monitor CRT (agrave direita)

Impressora

Uma impressora transfere dados de um computador para o papel Vocecirc natildeo precisa de

impressora para usar o computador mas se tiver uma poderaacute imprimir emails cartotildees convites

anuacutencios e outros materiais Muitas pessoas tambeacutem preferem imprimir suas fotos em casa

Os dois principais tipos de impressora satildeo a jato de tinta e a laser As impressoras a jato de tinta

satildeo as mais populares para uso domeacutestico Elas podem imprimir em preto e branco ou em cores

e produzem fotos de alta qualidade quando usadas com papel especial As impressoras a laser

satildeo mais raacutepidas e mais adequadas para uso intenso

Impressora a jato de tinta (agrave esquerda) impressora a laser (agrave direita)

Alto-falantes

Os alto-falantes satildeo usados para tocar som Eles podem vir embutidos na unidade de sistema ou

ser conectados com cabos Satildeo eles que permitem ouvir muacutesica e efeitos de som no computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3465

34

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Alto-falantes do computador

Modem

Para conectar o computador agrave Internet vocecirc precisa de um modem um dispositivo que envia e

recebe informaccedilotildees do computador por linha telefocircnica ou cabo de alta velocidade Agraves vezes os

modems vecircm embutidos na unidade de sistema mas os de alta velocidade normalmente satildeo

componentes separados

Modem a cabo

O QUE Eacute O SOFTWARE

O Software eacute uma aplicaccedilatildeo ou programa do computador escrita numa determinadalinguagem interpretaacutevel por uma determinada maacutequina (o processador de um computador ou

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3565

35

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

outro equipamento) e que permite executar determinadas tarefas para as quais o software foi

projetado Estes programas satildeo compostos por uma sequecircncia de instruccedilotildees (os comandos) e de

declaraccedilotildees de dados as quais satildeo armazenaacuteveis num meio digital

Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por um

computador com o objetivo de executar tarefas especiacuteficas Tambeacutem pode ser definido como

os programas que comandam o funcionamento de um computador

Em um computador o software eacute classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer

instruccedilotildees para o hardware O hardware eacute toda a parte fiacutesica que constitui o computador por

exemplo a CPU a memoacuteria e os dispositivos de entrada e saiacuteda O software eacute constituiacutedo por

todos os programas que existem para um referido sistema quer sejam produzidos pelo proacuteprio

utente ou pelo fabricante do computador

O termo inglecircs software foi usado pela primeira vez em 1958 em um artigo escrito pelo cientistaamericano John Wilder Tukey Foi tambeacutem ele o responsaacutevel por introduzir o termo bit para

designar diacutegito binaacuterio

Os softwares podem ser classificados como

SOFTWARE DE SISTEMA

Geralmente dividido em SISTEMAS OPERACIONAIS e PROGRAMAS UTILITAacuteRIOS Para

comeccedilar os Sist Operacionais satildeo de grande importacircncia pois eles nos datildeo a opccedilatildeo de dizer ao

computador o que ele deve fazer Dois exemplos bastante conhecidos do nosso puacuteblico satildeoo Mac o Windows e o Linux Os Programas utilitaacuterios geralmente satildeo softwares de menor porte

com funccedilotildees mais especificas tipo Verificaccedilatildeo de Disco Coacutepias de Seguranccedila entre outros

SOFTWARE APLICATIVO

Neste tipo de software se enquadram todos aqueles programas que satildeo utilizados na execuccedilatildeo

de tarefas especiacuteficas Posso citar vaacuterios exemplos mas os mais comuns satildeo os processadores

de texto como o Word que servem para trabalhar com os mais diversos tipos de textos emitir

etiquetas e fazer formulaacuterios as planilhas eletrocircnicas como o Excel satildeo poderosas ferramentas

de caacutelculos que facilitam tanto aquele trabalho aacuterduo de matemaacutetica fazer graacuteficos com real

representaccedilatildeo dos dados eacute uma coisa muito boa pra quem precisa e por uacuteltimo o que muitos

usam mas natildeo sabem o nome ao certo que satildeo os Browsers ou Navegadores softwares usados

para navegar na Web dentre eles os mais conhecidos atualmente satildeo Windows Internet

Explorer Firefox Google Chrome Opera e Safaacuteri

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3665

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3765

37

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

hoje eles satildeo bastante usados em situaccedilotildees de treinamentos de pessoas para enfrentar casos no

seu dia-a-dia

SOFTWARE DE JOGOS

Geralmente satildeo softwares relacionados a entretenimento para proporcionar lazer e diversatildeo

Dispotildeem de muitos recursos interativos e existem de todos os tipos desde estrateacutegias ateacute

simulaccedilotildees reais de muitas coisas como corridas (Need for Speed) ateacute mesmo de vida como o

Second Life

SOFTWARES ABERTOS

Satildeo aqueles que permitem que o usuaacuterio produza com liberdade e criatividade se classificam

nessa categoria aqueles softwares de apresentaccedilotildees bancos de dados e vaacuterios outros

Para fixar

Descreva uma definiccedilatildeo para os tipos de softwares

Software de Sistema_____________________________________________________________

Software Aplicativo ______________________________________________________________

Software de Linguagem __________________________________________________________

Software abertos _______________________________________________________________

Capiacutetulo 4 - Conceitos Baacutesicos de Banco de Dados

Segundo Korth um banco de dados ldquoeacute uma coleccedilatildeo de dados inter -relacionados

representando informaccedilotildees sobre um domiacutenio especiacuteficordquo ou seja sempre que for possiacutevel

agrupar informaccedilotildees que se relacionam e tratam de um mesmo assunto posso dizer que tenho

um banco de dados

Podemos exemplificar situaccedilotildees claacutessicas como uma lista telefocircnica um cataacutelogo de CDs ou um

sistema de controle de RH de uma empresa

Jaacute um sistema de gerenciamento de banco de dados (SGBD) eacute um software que possui

recursos capazes de manipular as informaccedilotildees do banco de dados e interagir com o usuaacuterio

Exemplos de SGBDs satildeo Oracle SQL Server DB2 PostgreSQL MySQL o proacuteprio Access ouParadox entre outros

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3865

38

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Por uacuteltimo temos que conceituar um sistema de banco de dados como o conjunto de quatro

componentes baacutesicos dados hardware software e usuaacuterios Date conceituou que ldquosistema de

bancos de dados pode ser considerado como uma sala de arquivos eletrocircnicardquo A Figura 1 ilustra

os componentes de um sistema de banco de dados

Componentes de um sistema de banco de dados

Os objetivos de um sistema de banco de dados satildeo o de isolar o usuaacuterio dos detalhes

internos do banco de dados (promover a abstraccedilatildeo de dados) e promover a independecircncia dos

dados em relaccedilatildeo agraves aplicaccedilotildees ou seja tornar independente da aplicaccedilatildeo a estrateacutegia de

acesso e a forma de armazenamento

Abstraccedilatildeo de dados

O sistema de banco de dados deve garantir uma visatildeo totalmente abstrata do banco de

dados para o usuaacuterio ou seja para o usuaacuterio do banco de dados pouco importa qual unidade de

armazenamento estaacute sendo usada para guardar seus dados contanto que os mesmos estejam

disponiacuteveis no momento necessaacuterio

Esta abstraccedilatildeo se daacute em trecircs niacuteveis (Figura 2) Niacutevel de visatildeo do usuaacuterio as partes do banco de dados que o usuaacuterio tem acesso de

acordo com a necessidade individual de cada usuaacuterio ou grupo de usuaacuterios

Niacutevel conceitual define quais os dados que estatildeo armazenados e qual o relacionamento

entre eles

Niacutevel fiacutesico eacute o niacutevel mais baixo de abstraccedilatildeo em que define efetivamente de que maneira

os dados estatildeo armazenados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3965

39

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 2 Niacuteveis de abstraccedilatildeo

Projeto de banco de dados

Todo bom sistema de banco de dados deve apresentar um projeto que visa a organizaccedilatildeo das

informaccedilotildees e utilizaccedilatildeo de teacutecnicas para que o futuro sistema obtenha boa performance e

tambeacutem facilite infinitamente as manutenccedilotildees que venham a acontecer

O projeto de banco de dados se daacute em duas fases

Modelagem conceitual Projeto loacutegico

Estas duas etapas se referem a um sistema de banco de dados ainda natildeo implementado ou seja

que ainda natildeo exista um novo projeto Para os casos em que o banco de dados jaacute exista mas eacute

um sistema legado por exemplo ou um sistema muito antigo sem documentaccedilatildeo o processo de

projeto de banco de dados se daraacute atraveacutes da utilizaccedilatildeo de uma teacutecnica chamada de Engenharia

Reversa que seraacute visto em outra oportunidade

Modelo conceitual

Eacute a descriccedilatildeo do BD de maneira independente ao SGBD ou seja define quais os dados

que apareceratildeo no BD mas sem se importar com a implementaccedilatildeo que se daraacute ao BD Desta

forma haacute uma abstraccedilatildeo em niacutevel de SGBD

Uma das teacutecnicas mais utilizadas dentre os profissionais da aacuterea eacute a abordagem entidade-

relacionamento (ER) onde o modelo eacute representado graficamente atraveacutes do diagrama entidade-

relacionamento (DER) (Figura 3)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 33: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3365

33

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Existem dois tipos baacutesicos de monitores CRT (tubo de raios catoacutedicos) e LCD (viacutedeo de cristal

liacutequido) Ambos produzem imagens niacutetidas mas os monitores LCD levam vantagem por serem

mais finos e mais leves

Monitor LCD (agrave esquerda) monitor CRT (agrave direita)

Impressora

Uma impressora transfere dados de um computador para o papel Vocecirc natildeo precisa de

impressora para usar o computador mas se tiver uma poderaacute imprimir emails cartotildees convites

anuacutencios e outros materiais Muitas pessoas tambeacutem preferem imprimir suas fotos em casa

Os dois principais tipos de impressora satildeo a jato de tinta e a laser As impressoras a jato de tinta

satildeo as mais populares para uso domeacutestico Elas podem imprimir em preto e branco ou em cores

e produzem fotos de alta qualidade quando usadas com papel especial As impressoras a laser

satildeo mais raacutepidas e mais adequadas para uso intenso

Impressora a jato de tinta (agrave esquerda) impressora a laser (agrave direita)

Alto-falantes

Os alto-falantes satildeo usados para tocar som Eles podem vir embutidos na unidade de sistema ou

ser conectados com cabos Satildeo eles que permitem ouvir muacutesica e efeitos de som no computador

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3465

34

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Alto-falantes do computador

Modem

Para conectar o computador agrave Internet vocecirc precisa de um modem um dispositivo que envia e

recebe informaccedilotildees do computador por linha telefocircnica ou cabo de alta velocidade Agraves vezes os

modems vecircm embutidos na unidade de sistema mas os de alta velocidade normalmente satildeo

componentes separados

Modem a cabo

O QUE Eacute O SOFTWARE

O Software eacute uma aplicaccedilatildeo ou programa do computador escrita numa determinadalinguagem interpretaacutevel por uma determinada maacutequina (o processador de um computador ou

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3565

35

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

outro equipamento) e que permite executar determinadas tarefas para as quais o software foi

projetado Estes programas satildeo compostos por uma sequecircncia de instruccedilotildees (os comandos) e de

declaraccedilotildees de dados as quais satildeo armazenaacuteveis num meio digital

Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por um

computador com o objetivo de executar tarefas especiacuteficas Tambeacutem pode ser definido como

os programas que comandam o funcionamento de um computador

Em um computador o software eacute classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer

instruccedilotildees para o hardware O hardware eacute toda a parte fiacutesica que constitui o computador por

exemplo a CPU a memoacuteria e os dispositivos de entrada e saiacuteda O software eacute constituiacutedo por

todos os programas que existem para um referido sistema quer sejam produzidos pelo proacuteprio

utente ou pelo fabricante do computador

O termo inglecircs software foi usado pela primeira vez em 1958 em um artigo escrito pelo cientistaamericano John Wilder Tukey Foi tambeacutem ele o responsaacutevel por introduzir o termo bit para

designar diacutegito binaacuterio

Os softwares podem ser classificados como

SOFTWARE DE SISTEMA

Geralmente dividido em SISTEMAS OPERACIONAIS e PROGRAMAS UTILITAacuteRIOS Para

comeccedilar os Sist Operacionais satildeo de grande importacircncia pois eles nos datildeo a opccedilatildeo de dizer ao

computador o que ele deve fazer Dois exemplos bastante conhecidos do nosso puacuteblico satildeoo Mac o Windows e o Linux Os Programas utilitaacuterios geralmente satildeo softwares de menor porte

com funccedilotildees mais especificas tipo Verificaccedilatildeo de Disco Coacutepias de Seguranccedila entre outros

SOFTWARE APLICATIVO

Neste tipo de software se enquadram todos aqueles programas que satildeo utilizados na execuccedilatildeo

de tarefas especiacuteficas Posso citar vaacuterios exemplos mas os mais comuns satildeo os processadores

de texto como o Word que servem para trabalhar com os mais diversos tipos de textos emitir

etiquetas e fazer formulaacuterios as planilhas eletrocircnicas como o Excel satildeo poderosas ferramentas

de caacutelculos que facilitam tanto aquele trabalho aacuterduo de matemaacutetica fazer graacuteficos com real

representaccedilatildeo dos dados eacute uma coisa muito boa pra quem precisa e por uacuteltimo o que muitos

usam mas natildeo sabem o nome ao certo que satildeo os Browsers ou Navegadores softwares usados

para navegar na Web dentre eles os mais conhecidos atualmente satildeo Windows Internet

Explorer Firefox Google Chrome Opera e Safaacuteri

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3665

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3765

37

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

hoje eles satildeo bastante usados em situaccedilotildees de treinamentos de pessoas para enfrentar casos no

seu dia-a-dia

SOFTWARE DE JOGOS

Geralmente satildeo softwares relacionados a entretenimento para proporcionar lazer e diversatildeo

Dispotildeem de muitos recursos interativos e existem de todos os tipos desde estrateacutegias ateacute

simulaccedilotildees reais de muitas coisas como corridas (Need for Speed) ateacute mesmo de vida como o

Second Life

SOFTWARES ABERTOS

Satildeo aqueles que permitem que o usuaacuterio produza com liberdade e criatividade se classificam

nessa categoria aqueles softwares de apresentaccedilotildees bancos de dados e vaacuterios outros

Para fixar

Descreva uma definiccedilatildeo para os tipos de softwares

Software de Sistema_____________________________________________________________

Software Aplicativo ______________________________________________________________

Software de Linguagem __________________________________________________________

Software abertos _______________________________________________________________

Capiacutetulo 4 - Conceitos Baacutesicos de Banco de Dados

Segundo Korth um banco de dados ldquoeacute uma coleccedilatildeo de dados inter -relacionados

representando informaccedilotildees sobre um domiacutenio especiacuteficordquo ou seja sempre que for possiacutevel

agrupar informaccedilotildees que se relacionam e tratam de um mesmo assunto posso dizer que tenho

um banco de dados

Podemos exemplificar situaccedilotildees claacutessicas como uma lista telefocircnica um cataacutelogo de CDs ou um

sistema de controle de RH de uma empresa

Jaacute um sistema de gerenciamento de banco de dados (SGBD) eacute um software que possui

recursos capazes de manipular as informaccedilotildees do banco de dados e interagir com o usuaacuterio

Exemplos de SGBDs satildeo Oracle SQL Server DB2 PostgreSQL MySQL o proacuteprio Access ouParadox entre outros

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3865

38

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Por uacuteltimo temos que conceituar um sistema de banco de dados como o conjunto de quatro

componentes baacutesicos dados hardware software e usuaacuterios Date conceituou que ldquosistema de

bancos de dados pode ser considerado como uma sala de arquivos eletrocircnicardquo A Figura 1 ilustra

os componentes de um sistema de banco de dados

Componentes de um sistema de banco de dados

Os objetivos de um sistema de banco de dados satildeo o de isolar o usuaacuterio dos detalhes

internos do banco de dados (promover a abstraccedilatildeo de dados) e promover a independecircncia dos

dados em relaccedilatildeo agraves aplicaccedilotildees ou seja tornar independente da aplicaccedilatildeo a estrateacutegia de

acesso e a forma de armazenamento

Abstraccedilatildeo de dados

O sistema de banco de dados deve garantir uma visatildeo totalmente abstrata do banco de

dados para o usuaacuterio ou seja para o usuaacuterio do banco de dados pouco importa qual unidade de

armazenamento estaacute sendo usada para guardar seus dados contanto que os mesmos estejam

disponiacuteveis no momento necessaacuterio

Esta abstraccedilatildeo se daacute em trecircs niacuteveis (Figura 2) Niacutevel de visatildeo do usuaacuterio as partes do banco de dados que o usuaacuterio tem acesso de

acordo com a necessidade individual de cada usuaacuterio ou grupo de usuaacuterios

Niacutevel conceitual define quais os dados que estatildeo armazenados e qual o relacionamento

entre eles

Niacutevel fiacutesico eacute o niacutevel mais baixo de abstraccedilatildeo em que define efetivamente de que maneira

os dados estatildeo armazenados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3965

39

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 2 Niacuteveis de abstraccedilatildeo

Projeto de banco de dados

Todo bom sistema de banco de dados deve apresentar um projeto que visa a organizaccedilatildeo das

informaccedilotildees e utilizaccedilatildeo de teacutecnicas para que o futuro sistema obtenha boa performance e

tambeacutem facilite infinitamente as manutenccedilotildees que venham a acontecer

O projeto de banco de dados se daacute em duas fases

Modelagem conceitual Projeto loacutegico

Estas duas etapas se referem a um sistema de banco de dados ainda natildeo implementado ou seja

que ainda natildeo exista um novo projeto Para os casos em que o banco de dados jaacute exista mas eacute

um sistema legado por exemplo ou um sistema muito antigo sem documentaccedilatildeo o processo de

projeto de banco de dados se daraacute atraveacutes da utilizaccedilatildeo de uma teacutecnica chamada de Engenharia

Reversa que seraacute visto em outra oportunidade

Modelo conceitual

Eacute a descriccedilatildeo do BD de maneira independente ao SGBD ou seja define quais os dados

que apareceratildeo no BD mas sem se importar com a implementaccedilatildeo que se daraacute ao BD Desta

forma haacute uma abstraccedilatildeo em niacutevel de SGBD

Uma das teacutecnicas mais utilizadas dentre os profissionais da aacuterea eacute a abordagem entidade-

relacionamento (ER) onde o modelo eacute representado graficamente atraveacutes do diagrama entidade-

relacionamento (DER) (Figura 3)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 34: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3465

34

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Alto-falantes do computador

Modem

Para conectar o computador agrave Internet vocecirc precisa de um modem um dispositivo que envia e

recebe informaccedilotildees do computador por linha telefocircnica ou cabo de alta velocidade Agraves vezes os

modems vecircm embutidos na unidade de sistema mas os de alta velocidade normalmente satildeo

componentes separados

Modem a cabo

O QUE Eacute O SOFTWARE

O Software eacute uma aplicaccedilatildeo ou programa do computador escrita numa determinadalinguagem interpretaacutevel por uma determinada maacutequina (o processador de um computador ou

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3565

35

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

outro equipamento) e que permite executar determinadas tarefas para as quais o software foi

projetado Estes programas satildeo compostos por uma sequecircncia de instruccedilotildees (os comandos) e de

declaraccedilotildees de dados as quais satildeo armazenaacuteveis num meio digital

Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por um

computador com o objetivo de executar tarefas especiacuteficas Tambeacutem pode ser definido como

os programas que comandam o funcionamento de um computador

Em um computador o software eacute classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer

instruccedilotildees para o hardware O hardware eacute toda a parte fiacutesica que constitui o computador por

exemplo a CPU a memoacuteria e os dispositivos de entrada e saiacuteda O software eacute constituiacutedo por

todos os programas que existem para um referido sistema quer sejam produzidos pelo proacuteprio

utente ou pelo fabricante do computador

O termo inglecircs software foi usado pela primeira vez em 1958 em um artigo escrito pelo cientistaamericano John Wilder Tukey Foi tambeacutem ele o responsaacutevel por introduzir o termo bit para

designar diacutegito binaacuterio

Os softwares podem ser classificados como

SOFTWARE DE SISTEMA

Geralmente dividido em SISTEMAS OPERACIONAIS e PROGRAMAS UTILITAacuteRIOS Para

comeccedilar os Sist Operacionais satildeo de grande importacircncia pois eles nos datildeo a opccedilatildeo de dizer ao

computador o que ele deve fazer Dois exemplos bastante conhecidos do nosso puacuteblico satildeoo Mac o Windows e o Linux Os Programas utilitaacuterios geralmente satildeo softwares de menor porte

com funccedilotildees mais especificas tipo Verificaccedilatildeo de Disco Coacutepias de Seguranccedila entre outros

SOFTWARE APLICATIVO

Neste tipo de software se enquadram todos aqueles programas que satildeo utilizados na execuccedilatildeo

de tarefas especiacuteficas Posso citar vaacuterios exemplos mas os mais comuns satildeo os processadores

de texto como o Word que servem para trabalhar com os mais diversos tipos de textos emitir

etiquetas e fazer formulaacuterios as planilhas eletrocircnicas como o Excel satildeo poderosas ferramentas

de caacutelculos que facilitam tanto aquele trabalho aacuterduo de matemaacutetica fazer graacuteficos com real

representaccedilatildeo dos dados eacute uma coisa muito boa pra quem precisa e por uacuteltimo o que muitos

usam mas natildeo sabem o nome ao certo que satildeo os Browsers ou Navegadores softwares usados

para navegar na Web dentre eles os mais conhecidos atualmente satildeo Windows Internet

Explorer Firefox Google Chrome Opera e Safaacuteri

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3665

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3765

37

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

hoje eles satildeo bastante usados em situaccedilotildees de treinamentos de pessoas para enfrentar casos no

seu dia-a-dia

SOFTWARE DE JOGOS

Geralmente satildeo softwares relacionados a entretenimento para proporcionar lazer e diversatildeo

Dispotildeem de muitos recursos interativos e existem de todos os tipos desde estrateacutegias ateacute

simulaccedilotildees reais de muitas coisas como corridas (Need for Speed) ateacute mesmo de vida como o

Second Life

SOFTWARES ABERTOS

Satildeo aqueles que permitem que o usuaacuterio produza com liberdade e criatividade se classificam

nessa categoria aqueles softwares de apresentaccedilotildees bancos de dados e vaacuterios outros

Para fixar

Descreva uma definiccedilatildeo para os tipos de softwares

Software de Sistema_____________________________________________________________

Software Aplicativo ______________________________________________________________

Software de Linguagem __________________________________________________________

Software abertos _______________________________________________________________

Capiacutetulo 4 - Conceitos Baacutesicos de Banco de Dados

Segundo Korth um banco de dados ldquoeacute uma coleccedilatildeo de dados inter -relacionados

representando informaccedilotildees sobre um domiacutenio especiacuteficordquo ou seja sempre que for possiacutevel

agrupar informaccedilotildees que se relacionam e tratam de um mesmo assunto posso dizer que tenho

um banco de dados

Podemos exemplificar situaccedilotildees claacutessicas como uma lista telefocircnica um cataacutelogo de CDs ou um

sistema de controle de RH de uma empresa

Jaacute um sistema de gerenciamento de banco de dados (SGBD) eacute um software que possui

recursos capazes de manipular as informaccedilotildees do banco de dados e interagir com o usuaacuterio

Exemplos de SGBDs satildeo Oracle SQL Server DB2 PostgreSQL MySQL o proacuteprio Access ouParadox entre outros

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3865

38

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Por uacuteltimo temos que conceituar um sistema de banco de dados como o conjunto de quatro

componentes baacutesicos dados hardware software e usuaacuterios Date conceituou que ldquosistema de

bancos de dados pode ser considerado como uma sala de arquivos eletrocircnicardquo A Figura 1 ilustra

os componentes de um sistema de banco de dados

Componentes de um sistema de banco de dados

Os objetivos de um sistema de banco de dados satildeo o de isolar o usuaacuterio dos detalhes

internos do banco de dados (promover a abstraccedilatildeo de dados) e promover a independecircncia dos

dados em relaccedilatildeo agraves aplicaccedilotildees ou seja tornar independente da aplicaccedilatildeo a estrateacutegia de

acesso e a forma de armazenamento

Abstraccedilatildeo de dados

O sistema de banco de dados deve garantir uma visatildeo totalmente abstrata do banco de

dados para o usuaacuterio ou seja para o usuaacuterio do banco de dados pouco importa qual unidade de

armazenamento estaacute sendo usada para guardar seus dados contanto que os mesmos estejam

disponiacuteveis no momento necessaacuterio

Esta abstraccedilatildeo se daacute em trecircs niacuteveis (Figura 2) Niacutevel de visatildeo do usuaacuterio as partes do banco de dados que o usuaacuterio tem acesso de

acordo com a necessidade individual de cada usuaacuterio ou grupo de usuaacuterios

Niacutevel conceitual define quais os dados que estatildeo armazenados e qual o relacionamento

entre eles

Niacutevel fiacutesico eacute o niacutevel mais baixo de abstraccedilatildeo em que define efetivamente de que maneira

os dados estatildeo armazenados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3965

39

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 2 Niacuteveis de abstraccedilatildeo

Projeto de banco de dados

Todo bom sistema de banco de dados deve apresentar um projeto que visa a organizaccedilatildeo das

informaccedilotildees e utilizaccedilatildeo de teacutecnicas para que o futuro sistema obtenha boa performance e

tambeacutem facilite infinitamente as manutenccedilotildees que venham a acontecer

O projeto de banco de dados se daacute em duas fases

Modelagem conceitual Projeto loacutegico

Estas duas etapas se referem a um sistema de banco de dados ainda natildeo implementado ou seja

que ainda natildeo exista um novo projeto Para os casos em que o banco de dados jaacute exista mas eacute

um sistema legado por exemplo ou um sistema muito antigo sem documentaccedilatildeo o processo de

projeto de banco de dados se daraacute atraveacutes da utilizaccedilatildeo de uma teacutecnica chamada de Engenharia

Reversa que seraacute visto em outra oportunidade

Modelo conceitual

Eacute a descriccedilatildeo do BD de maneira independente ao SGBD ou seja define quais os dados

que apareceratildeo no BD mas sem se importar com a implementaccedilatildeo que se daraacute ao BD Desta

forma haacute uma abstraccedilatildeo em niacutevel de SGBD

Uma das teacutecnicas mais utilizadas dentre os profissionais da aacuterea eacute a abordagem entidade-

relacionamento (ER) onde o modelo eacute representado graficamente atraveacutes do diagrama entidade-

relacionamento (DER) (Figura 3)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 35: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3565

35

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

outro equipamento) e que permite executar determinadas tarefas para as quais o software foi

projetado Estes programas satildeo compostos por uma sequecircncia de instruccedilotildees (os comandos) e de

declaraccedilotildees de dados as quais satildeo armazenaacuteveis num meio digital

Software eacute uma sequecircncia de instruccedilotildees escritas para serem interpretadas por um

computador com o objetivo de executar tarefas especiacuteficas Tambeacutem pode ser definido como

os programas que comandam o funcionamento de um computador

Em um computador o software eacute classificado como a parte loacutegica cuja funccedilatildeo eacute fornecer

instruccedilotildees para o hardware O hardware eacute toda a parte fiacutesica que constitui o computador por

exemplo a CPU a memoacuteria e os dispositivos de entrada e saiacuteda O software eacute constituiacutedo por

todos os programas que existem para um referido sistema quer sejam produzidos pelo proacuteprio

utente ou pelo fabricante do computador

O termo inglecircs software foi usado pela primeira vez em 1958 em um artigo escrito pelo cientistaamericano John Wilder Tukey Foi tambeacutem ele o responsaacutevel por introduzir o termo bit para

designar diacutegito binaacuterio

Os softwares podem ser classificados como

SOFTWARE DE SISTEMA

Geralmente dividido em SISTEMAS OPERACIONAIS e PROGRAMAS UTILITAacuteRIOS Para

comeccedilar os Sist Operacionais satildeo de grande importacircncia pois eles nos datildeo a opccedilatildeo de dizer ao

computador o que ele deve fazer Dois exemplos bastante conhecidos do nosso puacuteblico satildeoo Mac o Windows e o Linux Os Programas utilitaacuterios geralmente satildeo softwares de menor porte

com funccedilotildees mais especificas tipo Verificaccedilatildeo de Disco Coacutepias de Seguranccedila entre outros

SOFTWARE APLICATIVO

Neste tipo de software se enquadram todos aqueles programas que satildeo utilizados na execuccedilatildeo

de tarefas especiacuteficas Posso citar vaacuterios exemplos mas os mais comuns satildeo os processadores

de texto como o Word que servem para trabalhar com os mais diversos tipos de textos emitir

etiquetas e fazer formulaacuterios as planilhas eletrocircnicas como o Excel satildeo poderosas ferramentas

de caacutelculos que facilitam tanto aquele trabalho aacuterduo de matemaacutetica fazer graacuteficos com real

representaccedilatildeo dos dados eacute uma coisa muito boa pra quem precisa e por uacuteltimo o que muitos

usam mas natildeo sabem o nome ao certo que satildeo os Browsers ou Navegadores softwares usados

para navegar na Web dentre eles os mais conhecidos atualmente satildeo Windows Internet

Explorer Firefox Google Chrome Opera e Safaacuteri

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3665

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3765

37

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

hoje eles satildeo bastante usados em situaccedilotildees de treinamentos de pessoas para enfrentar casos no

seu dia-a-dia

SOFTWARE DE JOGOS

Geralmente satildeo softwares relacionados a entretenimento para proporcionar lazer e diversatildeo

Dispotildeem de muitos recursos interativos e existem de todos os tipos desde estrateacutegias ateacute

simulaccedilotildees reais de muitas coisas como corridas (Need for Speed) ateacute mesmo de vida como o

Second Life

SOFTWARES ABERTOS

Satildeo aqueles que permitem que o usuaacuterio produza com liberdade e criatividade se classificam

nessa categoria aqueles softwares de apresentaccedilotildees bancos de dados e vaacuterios outros

Para fixar

Descreva uma definiccedilatildeo para os tipos de softwares

Software de Sistema_____________________________________________________________

Software Aplicativo ______________________________________________________________

Software de Linguagem __________________________________________________________

Software abertos _______________________________________________________________

Capiacutetulo 4 - Conceitos Baacutesicos de Banco de Dados

Segundo Korth um banco de dados ldquoeacute uma coleccedilatildeo de dados inter -relacionados

representando informaccedilotildees sobre um domiacutenio especiacuteficordquo ou seja sempre que for possiacutevel

agrupar informaccedilotildees que se relacionam e tratam de um mesmo assunto posso dizer que tenho

um banco de dados

Podemos exemplificar situaccedilotildees claacutessicas como uma lista telefocircnica um cataacutelogo de CDs ou um

sistema de controle de RH de uma empresa

Jaacute um sistema de gerenciamento de banco de dados (SGBD) eacute um software que possui

recursos capazes de manipular as informaccedilotildees do banco de dados e interagir com o usuaacuterio

Exemplos de SGBDs satildeo Oracle SQL Server DB2 PostgreSQL MySQL o proacuteprio Access ouParadox entre outros

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3865

38

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Por uacuteltimo temos que conceituar um sistema de banco de dados como o conjunto de quatro

componentes baacutesicos dados hardware software e usuaacuterios Date conceituou que ldquosistema de

bancos de dados pode ser considerado como uma sala de arquivos eletrocircnicardquo A Figura 1 ilustra

os componentes de um sistema de banco de dados

Componentes de um sistema de banco de dados

Os objetivos de um sistema de banco de dados satildeo o de isolar o usuaacuterio dos detalhes

internos do banco de dados (promover a abstraccedilatildeo de dados) e promover a independecircncia dos

dados em relaccedilatildeo agraves aplicaccedilotildees ou seja tornar independente da aplicaccedilatildeo a estrateacutegia de

acesso e a forma de armazenamento

Abstraccedilatildeo de dados

O sistema de banco de dados deve garantir uma visatildeo totalmente abstrata do banco de

dados para o usuaacuterio ou seja para o usuaacuterio do banco de dados pouco importa qual unidade de

armazenamento estaacute sendo usada para guardar seus dados contanto que os mesmos estejam

disponiacuteveis no momento necessaacuterio

Esta abstraccedilatildeo se daacute em trecircs niacuteveis (Figura 2) Niacutevel de visatildeo do usuaacuterio as partes do banco de dados que o usuaacuterio tem acesso de

acordo com a necessidade individual de cada usuaacuterio ou grupo de usuaacuterios

Niacutevel conceitual define quais os dados que estatildeo armazenados e qual o relacionamento

entre eles

Niacutevel fiacutesico eacute o niacutevel mais baixo de abstraccedilatildeo em que define efetivamente de que maneira

os dados estatildeo armazenados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3965

39

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 2 Niacuteveis de abstraccedilatildeo

Projeto de banco de dados

Todo bom sistema de banco de dados deve apresentar um projeto que visa a organizaccedilatildeo das

informaccedilotildees e utilizaccedilatildeo de teacutecnicas para que o futuro sistema obtenha boa performance e

tambeacutem facilite infinitamente as manutenccedilotildees que venham a acontecer

O projeto de banco de dados se daacute em duas fases

Modelagem conceitual Projeto loacutegico

Estas duas etapas se referem a um sistema de banco de dados ainda natildeo implementado ou seja

que ainda natildeo exista um novo projeto Para os casos em que o banco de dados jaacute exista mas eacute

um sistema legado por exemplo ou um sistema muito antigo sem documentaccedilatildeo o processo de

projeto de banco de dados se daraacute atraveacutes da utilizaccedilatildeo de uma teacutecnica chamada de Engenharia

Reversa que seraacute visto em outra oportunidade

Modelo conceitual

Eacute a descriccedilatildeo do BD de maneira independente ao SGBD ou seja define quais os dados

que apareceratildeo no BD mas sem se importar com a implementaccedilatildeo que se daraacute ao BD Desta

forma haacute uma abstraccedilatildeo em niacutevel de SGBD

Uma das teacutecnicas mais utilizadas dentre os profissionais da aacuterea eacute a abordagem entidade-

relacionamento (ER) onde o modelo eacute representado graficamente atraveacutes do diagrama entidade-

relacionamento (DER) (Figura 3)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 36: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3665

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3765

37

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

hoje eles satildeo bastante usados em situaccedilotildees de treinamentos de pessoas para enfrentar casos no

seu dia-a-dia

SOFTWARE DE JOGOS

Geralmente satildeo softwares relacionados a entretenimento para proporcionar lazer e diversatildeo

Dispotildeem de muitos recursos interativos e existem de todos os tipos desde estrateacutegias ateacute

simulaccedilotildees reais de muitas coisas como corridas (Need for Speed) ateacute mesmo de vida como o

Second Life

SOFTWARES ABERTOS

Satildeo aqueles que permitem que o usuaacuterio produza com liberdade e criatividade se classificam

nessa categoria aqueles softwares de apresentaccedilotildees bancos de dados e vaacuterios outros

Para fixar

Descreva uma definiccedilatildeo para os tipos de softwares

Software de Sistema_____________________________________________________________

Software Aplicativo ______________________________________________________________

Software de Linguagem __________________________________________________________

Software abertos _______________________________________________________________

Capiacutetulo 4 - Conceitos Baacutesicos de Banco de Dados

Segundo Korth um banco de dados ldquoeacute uma coleccedilatildeo de dados inter -relacionados

representando informaccedilotildees sobre um domiacutenio especiacuteficordquo ou seja sempre que for possiacutevel

agrupar informaccedilotildees que se relacionam e tratam de um mesmo assunto posso dizer que tenho

um banco de dados

Podemos exemplificar situaccedilotildees claacutessicas como uma lista telefocircnica um cataacutelogo de CDs ou um

sistema de controle de RH de uma empresa

Jaacute um sistema de gerenciamento de banco de dados (SGBD) eacute um software que possui

recursos capazes de manipular as informaccedilotildees do banco de dados e interagir com o usuaacuterio

Exemplos de SGBDs satildeo Oracle SQL Server DB2 PostgreSQL MySQL o proacuteprio Access ouParadox entre outros

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3865

38

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Por uacuteltimo temos que conceituar um sistema de banco de dados como o conjunto de quatro

componentes baacutesicos dados hardware software e usuaacuterios Date conceituou que ldquosistema de

bancos de dados pode ser considerado como uma sala de arquivos eletrocircnicardquo A Figura 1 ilustra

os componentes de um sistema de banco de dados

Componentes de um sistema de banco de dados

Os objetivos de um sistema de banco de dados satildeo o de isolar o usuaacuterio dos detalhes

internos do banco de dados (promover a abstraccedilatildeo de dados) e promover a independecircncia dos

dados em relaccedilatildeo agraves aplicaccedilotildees ou seja tornar independente da aplicaccedilatildeo a estrateacutegia de

acesso e a forma de armazenamento

Abstraccedilatildeo de dados

O sistema de banco de dados deve garantir uma visatildeo totalmente abstrata do banco de

dados para o usuaacuterio ou seja para o usuaacuterio do banco de dados pouco importa qual unidade de

armazenamento estaacute sendo usada para guardar seus dados contanto que os mesmos estejam

disponiacuteveis no momento necessaacuterio

Esta abstraccedilatildeo se daacute em trecircs niacuteveis (Figura 2) Niacutevel de visatildeo do usuaacuterio as partes do banco de dados que o usuaacuterio tem acesso de

acordo com a necessidade individual de cada usuaacuterio ou grupo de usuaacuterios

Niacutevel conceitual define quais os dados que estatildeo armazenados e qual o relacionamento

entre eles

Niacutevel fiacutesico eacute o niacutevel mais baixo de abstraccedilatildeo em que define efetivamente de que maneira

os dados estatildeo armazenados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3965

39

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 2 Niacuteveis de abstraccedilatildeo

Projeto de banco de dados

Todo bom sistema de banco de dados deve apresentar um projeto que visa a organizaccedilatildeo das

informaccedilotildees e utilizaccedilatildeo de teacutecnicas para que o futuro sistema obtenha boa performance e

tambeacutem facilite infinitamente as manutenccedilotildees que venham a acontecer

O projeto de banco de dados se daacute em duas fases

Modelagem conceitual Projeto loacutegico

Estas duas etapas se referem a um sistema de banco de dados ainda natildeo implementado ou seja

que ainda natildeo exista um novo projeto Para os casos em que o banco de dados jaacute exista mas eacute

um sistema legado por exemplo ou um sistema muito antigo sem documentaccedilatildeo o processo de

projeto de banco de dados se daraacute atraveacutes da utilizaccedilatildeo de uma teacutecnica chamada de Engenharia

Reversa que seraacute visto em outra oportunidade

Modelo conceitual

Eacute a descriccedilatildeo do BD de maneira independente ao SGBD ou seja define quais os dados

que apareceratildeo no BD mas sem se importar com a implementaccedilatildeo que se daraacute ao BD Desta

forma haacute uma abstraccedilatildeo em niacutevel de SGBD

Uma das teacutecnicas mais utilizadas dentre os profissionais da aacuterea eacute a abordagem entidade-

relacionamento (ER) onde o modelo eacute representado graficamente atraveacutes do diagrama entidade-

relacionamento (DER) (Figura 3)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 37: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3765

37

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

hoje eles satildeo bastante usados em situaccedilotildees de treinamentos de pessoas para enfrentar casos no

seu dia-a-dia

SOFTWARE DE JOGOS

Geralmente satildeo softwares relacionados a entretenimento para proporcionar lazer e diversatildeo

Dispotildeem de muitos recursos interativos e existem de todos os tipos desde estrateacutegias ateacute

simulaccedilotildees reais de muitas coisas como corridas (Need for Speed) ateacute mesmo de vida como o

Second Life

SOFTWARES ABERTOS

Satildeo aqueles que permitem que o usuaacuterio produza com liberdade e criatividade se classificam

nessa categoria aqueles softwares de apresentaccedilotildees bancos de dados e vaacuterios outros

Para fixar

Descreva uma definiccedilatildeo para os tipos de softwares

Software de Sistema_____________________________________________________________

Software Aplicativo ______________________________________________________________

Software de Linguagem __________________________________________________________

Software abertos _______________________________________________________________

Capiacutetulo 4 - Conceitos Baacutesicos de Banco de Dados

Segundo Korth um banco de dados ldquoeacute uma coleccedilatildeo de dados inter -relacionados

representando informaccedilotildees sobre um domiacutenio especiacuteficordquo ou seja sempre que for possiacutevel

agrupar informaccedilotildees que se relacionam e tratam de um mesmo assunto posso dizer que tenho

um banco de dados

Podemos exemplificar situaccedilotildees claacutessicas como uma lista telefocircnica um cataacutelogo de CDs ou um

sistema de controle de RH de uma empresa

Jaacute um sistema de gerenciamento de banco de dados (SGBD) eacute um software que possui

recursos capazes de manipular as informaccedilotildees do banco de dados e interagir com o usuaacuterio

Exemplos de SGBDs satildeo Oracle SQL Server DB2 PostgreSQL MySQL o proacuteprio Access ouParadox entre outros

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3865

38

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Por uacuteltimo temos que conceituar um sistema de banco de dados como o conjunto de quatro

componentes baacutesicos dados hardware software e usuaacuterios Date conceituou que ldquosistema de

bancos de dados pode ser considerado como uma sala de arquivos eletrocircnicardquo A Figura 1 ilustra

os componentes de um sistema de banco de dados

Componentes de um sistema de banco de dados

Os objetivos de um sistema de banco de dados satildeo o de isolar o usuaacuterio dos detalhes

internos do banco de dados (promover a abstraccedilatildeo de dados) e promover a independecircncia dos

dados em relaccedilatildeo agraves aplicaccedilotildees ou seja tornar independente da aplicaccedilatildeo a estrateacutegia de

acesso e a forma de armazenamento

Abstraccedilatildeo de dados

O sistema de banco de dados deve garantir uma visatildeo totalmente abstrata do banco de

dados para o usuaacuterio ou seja para o usuaacuterio do banco de dados pouco importa qual unidade de

armazenamento estaacute sendo usada para guardar seus dados contanto que os mesmos estejam

disponiacuteveis no momento necessaacuterio

Esta abstraccedilatildeo se daacute em trecircs niacuteveis (Figura 2) Niacutevel de visatildeo do usuaacuterio as partes do banco de dados que o usuaacuterio tem acesso de

acordo com a necessidade individual de cada usuaacuterio ou grupo de usuaacuterios

Niacutevel conceitual define quais os dados que estatildeo armazenados e qual o relacionamento

entre eles

Niacutevel fiacutesico eacute o niacutevel mais baixo de abstraccedilatildeo em que define efetivamente de que maneira

os dados estatildeo armazenados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3965

39

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 2 Niacuteveis de abstraccedilatildeo

Projeto de banco de dados

Todo bom sistema de banco de dados deve apresentar um projeto que visa a organizaccedilatildeo das

informaccedilotildees e utilizaccedilatildeo de teacutecnicas para que o futuro sistema obtenha boa performance e

tambeacutem facilite infinitamente as manutenccedilotildees que venham a acontecer

O projeto de banco de dados se daacute em duas fases

Modelagem conceitual Projeto loacutegico

Estas duas etapas se referem a um sistema de banco de dados ainda natildeo implementado ou seja

que ainda natildeo exista um novo projeto Para os casos em que o banco de dados jaacute exista mas eacute

um sistema legado por exemplo ou um sistema muito antigo sem documentaccedilatildeo o processo de

projeto de banco de dados se daraacute atraveacutes da utilizaccedilatildeo de uma teacutecnica chamada de Engenharia

Reversa que seraacute visto em outra oportunidade

Modelo conceitual

Eacute a descriccedilatildeo do BD de maneira independente ao SGBD ou seja define quais os dados

que apareceratildeo no BD mas sem se importar com a implementaccedilatildeo que se daraacute ao BD Desta

forma haacute uma abstraccedilatildeo em niacutevel de SGBD

Uma das teacutecnicas mais utilizadas dentre os profissionais da aacuterea eacute a abordagem entidade-

relacionamento (ER) onde o modelo eacute representado graficamente atraveacutes do diagrama entidade-

relacionamento (DER) (Figura 3)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 38: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3865

38

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Por uacuteltimo temos que conceituar um sistema de banco de dados como o conjunto de quatro

componentes baacutesicos dados hardware software e usuaacuterios Date conceituou que ldquosistema de

bancos de dados pode ser considerado como uma sala de arquivos eletrocircnicardquo A Figura 1 ilustra

os componentes de um sistema de banco de dados

Componentes de um sistema de banco de dados

Os objetivos de um sistema de banco de dados satildeo o de isolar o usuaacuterio dos detalhes

internos do banco de dados (promover a abstraccedilatildeo de dados) e promover a independecircncia dos

dados em relaccedilatildeo agraves aplicaccedilotildees ou seja tornar independente da aplicaccedilatildeo a estrateacutegia de

acesso e a forma de armazenamento

Abstraccedilatildeo de dados

O sistema de banco de dados deve garantir uma visatildeo totalmente abstrata do banco de

dados para o usuaacuterio ou seja para o usuaacuterio do banco de dados pouco importa qual unidade de

armazenamento estaacute sendo usada para guardar seus dados contanto que os mesmos estejam

disponiacuteveis no momento necessaacuterio

Esta abstraccedilatildeo se daacute em trecircs niacuteveis (Figura 2) Niacutevel de visatildeo do usuaacuterio as partes do banco de dados que o usuaacuterio tem acesso de

acordo com a necessidade individual de cada usuaacuterio ou grupo de usuaacuterios

Niacutevel conceitual define quais os dados que estatildeo armazenados e qual o relacionamento

entre eles

Niacutevel fiacutesico eacute o niacutevel mais baixo de abstraccedilatildeo em que define efetivamente de que maneira

os dados estatildeo armazenados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3965

39

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 2 Niacuteveis de abstraccedilatildeo

Projeto de banco de dados

Todo bom sistema de banco de dados deve apresentar um projeto que visa a organizaccedilatildeo das

informaccedilotildees e utilizaccedilatildeo de teacutecnicas para que o futuro sistema obtenha boa performance e

tambeacutem facilite infinitamente as manutenccedilotildees que venham a acontecer

O projeto de banco de dados se daacute em duas fases

Modelagem conceitual Projeto loacutegico

Estas duas etapas se referem a um sistema de banco de dados ainda natildeo implementado ou seja

que ainda natildeo exista um novo projeto Para os casos em que o banco de dados jaacute exista mas eacute

um sistema legado por exemplo ou um sistema muito antigo sem documentaccedilatildeo o processo de

projeto de banco de dados se daraacute atraveacutes da utilizaccedilatildeo de uma teacutecnica chamada de Engenharia

Reversa que seraacute visto em outra oportunidade

Modelo conceitual

Eacute a descriccedilatildeo do BD de maneira independente ao SGBD ou seja define quais os dados

que apareceratildeo no BD mas sem se importar com a implementaccedilatildeo que se daraacute ao BD Desta

forma haacute uma abstraccedilatildeo em niacutevel de SGBD

Uma das teacutecnicas mais utilizadas dentre os profissionais da aacuterea eacute a abordagem entidade-

relacionamento (ER) onde o modelo eacute representado graficamente atraveacutes do diagrama entidade-

relacionamento (DER) (Figura 3)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 39: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 3965

39

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 2 Niacuteveis de abstraccedilatildeo

Projeto de banco de dados

Todo bom sistema de banco de dados deve apresentar um projeto que visa a organizaccedilatildeo das

informaccedilotildees e utilizaccedilatildeo de teacutecnicas para que o futuro sistema obtenha boa performance e

tambeacutem facilite infinitamente as manutenccedilotildees que venham a acontecer

O projeto de banco de dados se daacute em duas fases

Modelagem conceitual Projeto loacutegico

Estas duas etapas se referem a um sistema de banco de dados ainda natildeo implementado ou seja

que ainda natildeo exista um novo projeto Para os casos em que o banco de dados jaacute exista mas eacute

um sistema legado por exemplo ou um sistema muito antigo sem documentaccedilatildeo o processo de

projeto de banco de dados se daraacute atraveacutes da utilizaccedilatildeo de uma teacutecnica chamada de Engenharia

Reversa que seraacute visto em outra oportunidade

Modelo conceitual

Eacute a descriccedilatildeo do BD de maneira independente ao SGBD ou seja define quais os dados

que apareceratildeo no BD mas sem se importar com a implementaccedilatildeo que se daraacute ao BD Desta

forma haacute uma abstraccedilatildeo em niacutevel de SGBD

Uma das teacutecnicas mais utilizadas dentre os profissionais da aacuterea eacute a abordagem entidade-

relacionamento (ER) onde o modelo eacute representado graficamente atraveacutes do diagrama entidade-

relacionamento (DER) (Figura 3)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 40: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4065

40

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 3 - Exemplo de diagrama entidade-relacionamento

O modelo acima entre outras coisas nos traz informaccedilotildees sobre Alunos e Turmas Para

cada Aluno seraacute armazenado seu nuacutemero de matriacutecula seu nome e endereccedilo enquanto para

cada turma teremos a informaccedilatildeo de seu coacutedigo a sala utilizada e o periacuteodo

Modelo Loacutegico

Descreve o BD no niacutevel do SGBD ou seja depende do tipo particular de SGBD que seraacute

usado Natildeo podemos confundir com o Software que seraacute usado O tipo de SGBD que o modelo

loacutegico trata eacute se o mesmo eacute relacional orientado a objetos hieraacuterquico etc

Abordaremos o SGBD relacional por serem os mais difundidos Nele os dados satildeo organizados

em tabelas (Quadro 1)

Aluno

mat_aluno nome endereco

1 Ceciacutelia Ortiz Rezende Rua dos Ipecircs 37

2 Abiacutelio Joseacute Dias Avenida Presidente Jacircnio Quadros

357

3 Renata Oliveira Franco Rua Nove de Julho 45

Turma

cod_turma sala periodo

1 8 Manhatilde

2 5 Noite

Quadro 1 Exemplo de tabelas em um SGBD relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 41: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4165

41

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

O modelo loacutegico do BD relacional deve definir quais as tabelas e o nome das colunas que

compotildeem estas tabelas

Para o nosso exemplo poderiacuteamos definir nosso modelo loacutegico conforme o seguinte

Aluno(mat_aluno nome endereco)

Turma (cod_turma sala periodo)

Eacute importante salientar que os detalhes internos de armazenamento por exemplo natildeo satildeo

descritos no modelo loacutegico pois estas informaccedilotildees fazem parte do modelo fiacutesico que nada mais

eacute que a traduccedilatildeo do modelo loacutegico para a linguagem do software escolhido para implementar o

sistema

Sistema de Gerenciamento de Banco de Dados (SGBD)

Um Sistema de Gerenciamento de Banco de Dados (SGBD) ndash do inglecircs Data Base Management

System (DBMS) ndash eacute o conjunto de programas de computador (softwares) responsaacuteveis pelo

gerenciamento de uma base de dados Seu principal objetivo eacute retirar da aplicaccedilatildeo cliente a

responsabilidade de gerenciar o acesso a manipulaccedilatildeo e a organizaccedilatildeo dos dados O SGBD

disponibiliza uma interface para que seus clientes possam incluir alterar ou consultar dados

previamente armazenados Em bancos de dados relacionais a interface eacute constituiacuteda pelas APIs

(Application Programming Interface) ou drivers do SGBD que executam comandos na linguagem

SQL (Structured Query Language)rdquo

Fonte Wikipeacutedia

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 42: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4265

42

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Tudo que fazemos em um banco de dados passa pelo SGBD O SGBD eacute responsaacutevel por tudo

salvar os dados no HD manter em memoacuteria os dados mais acessados ligar dados e metadados

disponibilizar uma interface para programas e usuaacuterios externos acessem o banco de dados (para

banco de dados relacionais eacute utilizada a linguagem SQL) encriptar dados controlar o acesso ainformaccedilotildees manter coacutepias dos dados para recuperaccedilatildeo de uma possiacutevel falha garantir

transaccedilotildees no banco de dados enfim sem o SGBD o banco de dados natildeo funciona

Eacute comum as pessoas chamarem um SGBD de banco de dados por exemplo banco de

dados Oracle banco de dados MySQL banco de dados SQL Server etc Na verdade esses satildeo

os SGBDs banco de dados eacute o que eles oferecem o correto eacute chamaacute-los de SGBD Oracle

SGBD MySQL SGBD SQL Server etc Cada um implementa um banco de dados (ou vaacuterios) de

uma maneira diferente mas para o usuaacuterio isso eacute quase transparente pois a linguagem de

acesso aos dados eacute a mesma o SQL Agora vocecirc jaacute sabe pra acessar um banco de dados vocecirc

precisa usar um SGBD

Usuaacuterios de banco de dados

A meta principal de um sistema de banco de dados eacute prover um ambiente para buscar e

armazenar novas informaccedilotildees no banco de dados Existem quatro tipos diferentes de usuaacuterios de

banco de dados segundo o modo pelo qual esperam interagir com o sistema

Programadores de aplicativos Profissionais da computaccedilatildeo interagem com o sistema

por meio de chamadas agrave DML que satildeo embutidas em um programa escrito em uma

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 43: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4365

43

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

linguagem hospedeira (por exemplo Pascal C C++ Java etc) Estes programas satildeo

frequentemente referenciados como programas de aplicaccedilatildeo Exemplos em um sistema

bancaacuterio incluem programas que geram cheques de pagamento fazem deacutebitos e creacuteditos

em contas transferem fundos entre contas etc

Uma vez que a sintaxe da DML eacute normalmente bastante diferente da sintaxe da linguagem

hospedeira chamadas na DML satildeo usualmente precedidas por um caractere especial e

entatildeo o coacutedigo apropriado pode ser gerado Um preacute-processador especial chamado preacute-

compilador DML converte o comando da DML em chamada de procedimento normal na

linguagem hospedeira O programa resultante eacute entatildeo passado pelo compilador da

linguagem hospedeira o qual gera o coacutedigo-objeto apropriado

Existem tipos especiais de linguagens de programaccedilatildeo que combinam estruturas de controle de

linguagens tipo Pascal com estruturas de controle para a manipulaccedilatildeo de um objeto de um bancode dados (por exemplo as relaccedilotildees) Essas linguagens algumas vezes chamadas de linguagens

de quarta geraccedilatildeo frequentemente incluem recursos especiais para facilitar a criaccedilatildeo de

formulaacuterios e a disposiccedilatildeo de dados na tela A grande maioria dos sistemas de bancos de dados

comerciais inclui uma linguagem de quarta geraccedilatildeo

Usuaacuterios de alto niacutevel Esses usuaacuterios interagem com o sistema sem escrever

programas Em vez disso eles formulam suas consultas em uma linguagem de consulta

(query) a banco de dados Cada consulta eacute submetida a um processador de consulta cujafunccedilatildeo eacute gerar um comando da DML e dividi-lo em instruccedilotildees que o gerenciador do banco

de dados compreenda

Usuaacuterios especializados Alguns usuaacuterios padrotildees escrevem aplicativos especializados

que natildeo se ajustam a padrotildees tradicionais de processamento de dados Entre esses

aplicativos estatildeo os sistemas de projeto apoiado por computador (CAP) sistemas

especialistas sistemas que armazenam dados com tipos complexos (como por exemplo

dados geograacuteficos e dados de aacuteudio) e sistemas de modelagem ambiental

Usuaacuterios ingecircnuos Esses usuaacuterios interagem com o sistema invocando um dos

programas aplicativos permanentes que foram escritos anteriormente Por exemplo um

contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um

programa chamado transferecircncia Este programa perguntaria ao contador que quantidade

de dinheiro estaacute sendo transferida a conta a partir da qual a transferecircncia seraacute feita e a

conta para a qual o dinheiro deve ser transferido

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 44: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4465

44

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Estrutura geral do sistema

Um sistema de banco de dados eacute dividido em moacutedulos que tratam de cada uma das

responsabilidades do sistema geral Na maioria dos casos o sistema operacional do computador

fornece apenas os serviccedilos mais baacutesicos e o sistema de banco de dados precisa ser construiacutedo

sobre essa base Portanto o projeto do sistema de banco de dados precisa incluir consideraccedilotildees

sobre a interface entre o sistema de banco de dados e o sistema operacional

Os componentes funcionais de um sistema de banco de dados incluem

Gerenciador de arquivos que gerencia a alocaccedilatildeo do espaccedilo na armazenagem do disco e

as estruturas de dados usadas para representar a informaccedilatildeo armazenada no disco

Gerenciador do banco de dados que fornece a interface entre os dados de baixo niacutevel

armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema

Processador de consultas que traduz os comandos numa linguagem de consulta para

instruccedilotildees de baixo niacutevel que o gerenciador do banco de dados pode interpretar Aleacutem

disso o processador de consultas tenta transformar uma requisiccedilatildeo do usuaacuterio em uma

forma compatiacutevel e mais eficiente com respeito ao banco de dados encontrando uma boa

estrateacutegia para a executar a consulta

Preacute-compilador da DML que converte comandos da DML embutidos em um aplicativo para

chamadas de procedimento normal na linguagem hospedeira O preacute-compilador precisa

interagir com o processador de consultas pra gerar o coacutedigo apropriado

Compilador da DDL que converte comandos da DDL em um conjunto de tabelas

contendo metadados ou dados sobre dados

Adicionalmente diversas estruturas de dados satildeo requeridas como parte da implementaccedilatildeo do

sistema fiacutesico incluindo

Arquivos de dados que armazenam o banco de dados propriamente dito

Dicionaacuterio de dados que armazena metadados sobre a estrutura do banco de dados O

dicionaacuterio de dados eacute usado com frequecircncia Assim deve-se dar grande ecircnfase nodesenvolvimento de um bom projeto e implementaccedilatildeo eficiente do dicionaacuterio

Iacutendices que fornecem acesso raacutepido aos itens de dados guardando determinados valores

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 45: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 46: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4665

46

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Perguntas

1 Descreva as funccedilotildees principais de um administrador de banco de dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 47: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4765

47

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

2 Descreva os componentes funcionais de um SGBD

Modelos de Dados

Modelo Relacional

O modelo relacional apareceu devido agraves seguintes necessidades aumentar a independecircncia de

dados nos sistemas gerenciadores de banco de dados prover um conjunto de funccedilotildees apoiadas

em aacutelgebra relacional para armazenamento e recuperaccedilatildeo de dados permitir processamento ad

hoc1 O modelo relacional tendo por base a teoria dos conjuntos e aacutelgebra relacional foi

resultado de um estudo teoacuterico realizado por CODD O Modelo relacional revelou-se ser o mais

flexiacutevel e adequado ao solucionar os vaacuterios problemas que se colocam no niacutevel da concepccedilatildeo e

implementaccedilatildeo da base de dados A estrutura fundamental do modelo relacional eacute a relaccedilatildeo

(tabela) Uma relaccedilatildeo eacute constituiacuteda por um ou mais atributos (campos) que traduzem o tipo de

dados a armazenar Cada instacircncia do esquema (linha) eacute chamada de tupla (registro) O modelo

relacional natildeo tem caminhos preacute-definidos para se fizer acesso aos dados como nos modelos que

o precederam O modelo relacional implementa estruturas de dados organizadas em relaccedilotildees

Poreacutem para trabalhar com essas tabelas algumas restriccedilotildees precisaram ser impostas para evitar

aspectos indesejaacuteveis como Repeticcedilatildeo de informaccedilatildeo incapacidade de representar parte da

informaccedilatildeo e perda de informaccedilatildeo Essas restriccedilotildees satildeo integridade referencial chaves e

integridade de junccedilotildees de relaccedilotildees A Figura 13 abaixo traz exemplos de tabelas sob o

modelo relacional

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 48: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4865

48

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Figura 13 Tabelas do modelo relacional Cliente - Conta Corrente

Modelo Orientado a Objetos

Os bancos de dados orientados a objeto comeccedilaram a se tornar comercialmente viaacuteveis

em meados de 1980 A motivaccedilatildeo para seu surgimento estaacute em funccedilatildeo dos limites de

armazenamento e representaccedilatildeo semacircntica impostas no modelo relacional Alguns exemplos satildeo

os sistemas de informaccedilotildees geograacuteficas (SIG) os sistemas CAD e CAM que satildeo mais facilmente

construiacutedos usando tipos complexos de dados A habilidade para criar os tipos de dados

necessaacuterios eacute uma caracteriacutestica das linguagens de programaccedilatildeo orientadas a objetos

Contudo estes sistemas necessitam guardar representaccedilotildees das estruturas de dados que

utilizam no armazenamento permanente A estrutura padratildeo para os bancos de dados orientados

a objetos foi feita pelo Object Database Management Group (ODMG) Esse grupo eacute formado por

representantes dos principais fabricantes de banco de dados orientados a objeto disponiacuteveis

comercialmente Membros do grupo tecircm o compromisso de incorporar o padratildeo em seus

produtos O termo Modelo Orientado a Objetos eacute usado para documentar o padratildeo que conteacutem a

descriccedilatildeo geral das facilidades de um conjunto de linguagens de programaccedilatildeo orientadas a

objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados

Quando os bancos de dados orientados a objetos foram introduzidos algumas das falhas

perceptiacuteveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e

acreditava-se que tais bancos de dados ganhariam grande parcela do mercado Hoje poreacutemacredita-se que os Bancos de Dados Orientados a Objetos seratildeo usados em aplicaccedilotildees

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 49: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 4965

49

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

especializadas enquanto os sistemas relacionais continuaratildeo a sustentar os negoacutecios

tradicionais onde as estruturas de dados baseadas em relaccedilotildees satildeo suficientes O diagrama de

classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos

Observe o exemplo da Figura 14 e compare as diferenccedilas com o modelo anterior

Capiacutetulo 5 - SGBD ndash MYSQL

Breve Histoacuteria do MySQL

O MySQL surgiu a partir da necessidade da equipe que criou o SGBD de utilizar algum

mecanismo que permitisse a conexatildeo de tabelas criadas na linguagem SQL para um determinado

fim A princiacutepio o grupo iria utilizar o mSQL mas logo perceberam que esta ferramenta natildeo era

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 50: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5065

50

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

raacutepida o suficiente para atender agraves necessidades do projeto O jeito foi criar uma soluccedilatildeo proacutepria

Nascia o MySQL

O MySQL foi criado por Michael Widenius na companhia suiacuteccedila TcX Por volta de 1979

Michael desenvolveu um banco de dados chamado UNIREG sendo rescritos em vaacuterias

linguagens desde entatildeo Em 1994 a empresa TcX comeccedilou o desenvolvimento de aplicaccedilotildees

baseadas na Web tendo como base o banco UNIREG poreacutem esse banco possuiacutea muito

overhead para obter sucesso em uma aplicaccedilatildeo para geraccedilatildeo de paacuteginas dinacircmicas na Web

Entatildeo a empresa TcX comeccedilou a procurar por outro banco o mSQL uma ferramenta baseada em

SQL mas com caracteriacutesticas pobres natildeo possuindo por exemplo suporte a iacutendices e com

desempenho inferior ao UNIREG

Foi entatildeo que o desenvolvedor do banco UNIREG contatou o David Hughes criador do

mSQL para saber do interesse dele em unir os dois bancos Sendo positivo o interesse de Davida empresa TcX resolveu desenvolver um novo banco mas mantendo ao maacuteximo a

compatibilidade com mSQL TcX foi esperta o suficiente para natildeo reinventar o que jaacute estava bem

feito ela construiu seu servidor baseado na estrutura que jaacute estava montada do UNIREG e

utilizou grande nuacutemero de utilitaacuterios escritas para mSQL e fez APIs para o novo servidor

praticamente iguais ao mSQL Como resultado usuaacuterios do mSQL que decidissem mudar para o

novo servidor da TcX teriam apenas que fazer pequenas e simples mudanccedilas nos coacutedigos

existentesFoi me maio de 1995 que definitivamente a primeira versatildeo do MySQL foi lanccedilada Um

dos parceiros da TcX sugeriu a distribuiccedilatildeo do servidor na Internet o objetivo disso era a

utilizaccedilatildeo de um modelo pioneiro desenvolvido por Aladdin Peter Deutsch O resultado foi um

maior flexibilidade em sem copyright que fez do MySQL mais difundido gratuitamente do que

mSQL

O Banco de Dados MySQL

O MYSQL eacute um dos bancos de dados relacionais mais raacutepidos do mercado apresenta

quase todas as funcionalidades dos grandes bancos de dados MySQL eacute uma linguagem simples

em que vocecirc facilmente pode gravar alterar e recuperar informaccedilotildees num web site com

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 51: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5165

51

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

seguranccedila e rapidez O MYSQL eacute executado principalmente em sistemas que participam da

filosofia UNIX embora outros sistemas SO tambeacutem fornecem suporte como Windows por

exemplo

O MYSQL eacute um sistema de gerenciamento de banco de dados relacional multiencadeado

de coacutedigo fonte aberto e niacutevel corporativo O MySQL natildeo eacute apenas um banco de dados mas sim

um gerenciador de banco de dados Com este SGBD (Sistema Gerenciador de Banco de Dados)

tambeacutem pode ser utilizado para aplicaccedilotildees corporativas o qual necessitam de vaacuterias conexotildees

simultacircneas Uma conexatildeo eacute o tempo que leva para o usuaacuterio receber o dado solicitado

MySQL eacute a soluccedilatildeo robusta para quase todo tipo de aplicaccedilatildeo combine a estabilidade do

MySQL com seu baixo custo de propriedade e rapidamente vocecirc iraacute consideraacute-lo indispensaacutevel O

MySQL oferece o melhor cenaacuterio de todos SGBD executa em muitas plataformas oferece um

baixo TCO (custo total de propriedade) e eacute muito estaacutevelO MySQL eacute um sistema de gerenciamento de bancos de dados relacional

Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados um soacute local Isso proporciona velocidade e flexibilidade

O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito

grandes de maneira muito mais raacutepida que as soluccedilotildees existentes e tem sido usado em

ambientes de produccedilatildeo de alta demanda por diversos anos de maneira bem sucedida Apesar de

estar em constante desenvolvimento o Servidor MySQL oferece hoje um rico e proveitosoconjunto de funccedilotildees A conectividade velocidade e seguranccedila fazem com que o MySQL seja

altamente adaptaacutevel para acessar bancos de dados na Internet

O Programa de Banco de Dados MySQL eacute um sistema clienteservidor que consiste de um

servidor SQL multitarefa que suporta acessos diferentes diversos programas clientes e

bibliotecas ferramentas administrativas e diversas interfaces de programaccedilatildeo (APIs) Tambeacutem

concedemos o Servidor MySQL como uma biblioteca multitarefa que vocecirc pode ligar agrave sua

aplicaccedilatildeo para chegar a um produto mais raacutepido menor e mais facilmente gerenciaacutevel

Algumas Caracteriacutesticas do MySQL

Multi-plataforma portanto suporta diferentes plataformas Win32 Linux FreeBSD Unix etc

Suporte a muacuteltiplos processadores

Um sofisticado sistema de senhas criptografadas flexiacutevel e Seguro

Coacutedigo fonte escrito em C e C++ e testado com uma variedade de diferentes compiladores

Banco de dados de coacutedigo aberto e gratuito

Suporte agraves APIacutes das Seguintes linguagens PHP Perl CC++Java Pynthon etc

Suporte agrave ODBC vocecirc pode facilmente conectar o Access a um banco de dados do MySQL

O Cliente conecta no MySQL atraveacutes de conexotildees TCPIP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 52: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5265

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 53: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5365

53

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Compatibilidade MySQL pode facilmente conectar com a maioria de aplicaccedilotildees SQL-sQL-

compliant com ODBC

Talvez uma quarta vantagem a fazer o interruptor a MySQL podia ser atribuiacuteda ao desempenho

noacutes observamos um aumento [velocidade de] no desempenho desde que a mudanccedila e natildeo

experimentamos nenhuns problemas com o produto natildeo dizemos os sistemas

computadorizados analista de NAIS e o liacuteder de projeto Dwight Clark indicado em um artigo para

a semana federal do computador

Onde adquirir o MySQL

Atraveacutes de sites da Internet mais precisamente no proacuteprio site do produto

(httpwwwmysqlcom)

Concluindo - Eacute incriacutevel como um produto como o SGBD MySQL exerce tatildeo bem sua funccedilatildeo e

ainda eacute gratuito superando assim a concorrecircncia talvez por esse mesmo motivo de ele ser open

source e que todo desenvolvedor possa dar seu toque ao sistema eacute o que o torna tatildeo eficiente

Este documento resume um pouco a vida desse notoacuterio produto que soacute tende a crescer mais e

mais e que noacutes estaremos acompanhado e ajudando em sua transiccedilatildeo para a excelecircncia

COMANDOS e OPERADORES

Tipos de dados do MySQL

Os tipos de dados que pode ter um campo podem-se agrupar em trecircs grandes grupos

1 Tipos numeacutericos

2 Tipos de Data

3 Tipos de Cadeia

1) Tipos numeacutericos

Existem tipos de dados numeacutericos que se podem dividir em dois grandes grupos os que estatildeo

em viacutergula flutuante (com decimais) e os que natildeo

Int nuacutemero inteiro com ou sem sinal Com sinal a margem de valores vaacutelidos eacute desde

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 54: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5465

54

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

-2147483648 ateacute 2147483647

Float nuacutemero pequeno em viacutergula flutuante de precisatildeo simples Os valores vaacutelidos vatildeo desde -

3402823466E+38 ateacute -1175494351E-380 ateacute desde 175494351E-38 ateacute 3402823466E+38

(eacute o tipo para ser usado em nuacutemeros reais preccedilo e nuacutemeros que usa decimal ex 1032)

2) Tipos data

Na hora de armazenar datas haacute que ter em conta que MySQL natildeo verifica de uma maneira

estricta se uma data eacute vaacutelida ou natildeo Simplesmente comprova que o mecircs estaacute compreendido

entre 0 e 12 e que o dia estaacute compreendido entre 0 e 31

Date tipo data armazena uma data A margem de valores vai desde o 1 de Janeiro de 1001 ao

31 de dezembro de 9999 O formato de armazenamento eacute de ano-mes-dia

Time armazena uma hora A margem de horas vai desde -838 horas 59 minutos e 59 segundos

O formato de armazenamento eacute HHMMSS

3 Tipos de cadeia

VarChar(n) armazena uma cadeia de longitude variaacutevel A cadeia poderaacute conter desde 0 ateacute 255caracteres Dentro dos tipos de cadeia pode-se distinguir dois subtipos os tipo Test e os tipo Blob

(Binary Large Object) A diferenccedila entre um tipo e outro eacute o tratamento que recebem na hora de

ordenaacute-los e comparaacute-los No tipo test ordena-se sem ter importacircncia as maiuacutesculas e as

minuacutesculas e no tipo blob ordena-se tendo em conta as maiuacutesculas e minuacutesculas

(para usar em palavras)

Comandos Baacutesico s do SQL

Iremos ver os comandos baacutesicos do SQL utilizados pela maioria dos bancos de dados inclusive

o MySQL que seratildeo necessaacuterios para o desenvolvimento do nosso projeto pois o objetivo deste

curso natildeo eacute aprender o SQL mas sim o PHP

Observe que todo comando SQL termina com um (ponto e viacutergula)

Comando Create Database

Este comando permite a criaccedilatildeo do banco de dados

Sintaxe

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 55: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5565

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 56: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5665

56

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

DROP TABLE lt nome_tabela gt

Exemplo

Drop table alunos

Comando Alter

Este comando permite inserireliminar atributos nas tabelas jaacute existentes

Sintaxe

ALTER TABLE lt nome_tabela gt ADD DROP (

nome_atributo1 lt tipo gt [ NOT NULL ]

nome_atributoN lt tipo gt [ NOT NULL ])

Exemplo

Alter table alunos ADD COLUMN turno char(10) NOT NULL

Manipulando dados das tabelas

Comando SELECT

Permite recuperar informaccedilotildees existentes nas tabelas

Sintaxe

SELECT [DISTINCT] expressao [AS nom-atributo] [FROM from-list] [WHERE condicao] [ORDER

BY

attr_name1 [ASC | DESC ]

Onde

DISTINCT - Para eliminar linhas duplicadas na saiacuteda

Expressatildeo - Define os dados que queremos na saiacuteda normalmente uma ou mais colunas de

uma tabela da lista FROM

AS nom-atributo - um alias para o nome da coluna exemplo

FROM - lista das tabelas na entrada

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 57: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5765

57

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

WHERE - criteacuterios da seleccedilatildeo

ORDER BY - Criteacuterio de ordenaccedilatildeo das tabelas de saiacuteda Podem ser

ASC - ordem ascendente (crescente)

DESC - ordem descendente (decrescente)

Exemplo

Select cidade estado from brasil where populacao gt 100000 order by Desc

Comando INSERT

Adiciona um ou vaacuterios registros a uma tabela Isto eacute referido como consulta anexaccedilatildeo

Sintaxe

INSERT INTO destino [(campo1[ campo2[ ]])]VALUES (valor1[ valor2[ ])

Onde

Destino - O nome da tabela ou consulta em que os registros devem ser anexados

campo1 campo2 - Os nomes dos campos aos quais os dados devem ser anexados valor1

valor2 - Os valores para inserir em campos especiacuteficos do novo registro Cada valor eacute inserido no

campo que corresponde agrave posiccedilatildeo do valor na lista Valor1 eacute inserido no campo1 do novo registro

valor2 no campo2 e assim por dianteOs valores devem ser separados com uma viacutergula e os campos de textos entre aspas duplas ou

simples

Exemplo

Insert into alunos (Id_aluno nome endereccedilo turma turno)

Values (1 lsquoGlauciorsquo lsquo Av das Ameacutericasrsquo lsquo1101rsquo lsquomanhatildersquo)

Comando UPDATE

Cria uma consulta atualizaccedilatildeo que altera os valores dos campos em uma tabela especificada com

base em criteacuterios especiacuteficos

Sintaxe

UPDATE tabela SET campo1 = valornovo WHERE criteacuterio

Onde

Tabela - O nome da tabela cujos dados vocecirc quer modificar

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 58: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5865

58

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Valornovo - Uma expressatildeo que determina o valor a ser inserido em um campo especiacutefico nos

registros atualizados

criteacuterio - Uma expressatildeo que determina quais registros devem ser atualizados Soacute os registros

que satisfazem a expressatildeo satildeo atualizados

Exemplo

Update alunos Set turno = lsquotardersquo where turma = lsquo1101rsquo

UPDATE eacute especialmente uacutetil quando vocecirc quer alterar muitos registros ou quando os registros

que vocecirc quer alterar estatildeo em vaacuterias tabelas Vocecirc pode alterar vaacuterios campos ao mesmo

tempo

UPDATE natildeo gera um conjunto de resultados Se vocecirc quiser saber quais resultados seratildeo

alterados examine primeiro os resultados da consulta seleccedilatildeo que use os mesmos criteacuterios eentatildeo execute a consulta atualizaccedilatildeo

Comando DELETE

Remove registros de uma ou mais tabelas listadas na claacuteusula FROM que satisfaz a claacuteusula

WHERE

SintaxeDELETE [tabela]

FROM tabela

WHERE criteacuterio

onde

tabela - O nome opcional da tabela da qual os registros satildeo excluiacutedos

tabela - O nome da tabela da qual os registros satildeo excluiacutedos

criteacuterio - Uma expressatildeo que determina qual registro deve ser excluiacutedo

Exemplo

Delete from alunos WHERE turno=Manhatilde

DELETE eacute especialmente uacutetil quando vocecirc quer excluir muitos registros

Para eliminar uma tabela inteira do banco de dados vocecirc pode usar o meacutetodo Execute com uma

instruccedilatildeo DROP

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 59: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 5965

59

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Entretanto se vocecirc eliminar a tabela a estrutura eacute perdida Por outro lado quando vocecirc usa

DELETE apenas os dados satildeo excluiacutedos A estrutura da tabela e todas as propriedades da

tabela como atributos de campo e iacutendices permanecem intactos

Vocecirc pode usar DELETE para remover registros de tabelas que estatildeo em uma relaccedilatildeo um por

vaacuterios com outras tabelas Operaccedilotildees de exclusatildeo em cascata fazem com que os registros das

tabelas que estatildeo no lado vaacuterios da relaccedilatildeo sejam excluiacutedos quando os registros

correspondentes do lado um da relaccedilatildeo satildeo excluiacutedos na consulta

Por exemplo nas relaccedilotildees entre as tabelas Clientes e Pedidos a tabela Clientes estaacute do lado

um e a tabela Pedidos estaacute no lado vaacuterios da relaccedilatildeo Excluir um registro em Clientes faz com

que os registros correspondentes em Pedidos sejam excluiacutedos se a opccedilatildeo de exclusatildeo em

cascata for especificada

O DELETE exclui registros inteiros e natildeo apenas dados em campos especiacuteficos Se vocecirc quiserexcluir valores de um campo especiacutefico crie uma consulta atualizaccedilatildeo que mude os valores para

Null

Apoacutes remover os registros usando uma consulta exclusatildeo vocecirc natildeo poderaacute desfazer a operaccedilatildeo

Se quiser saber quais arquivos foram excluiacutedos primeiro examine os resultados de uma consulta

seleccedilatildeo que use o mesmo criteacuterio e entatildeo execute a consulta exclusatildeo Mantenha os backups de

seus dados Se vocecirc excluir os registros errados poderaacute recuperaacute-los a partir dos seus backups

Em Resumo

CREATE DATABASE

Cria um banco de dados Este comando cria uma aacuterea loacutegica diretoacuterio onde estaratildeo

armazenadas todas as tabelas do banco de dados

Ex mysqlgtCREATE DATABASE funcionaacuterios

DROP DATABASE

Apaga um banco de dados

Ex mysqlgtDROP DATABASE funcionaacuterios

CREATE TABLE

Comando utilizado para criar tabelas

Ex mysqlgtCREATE TABLE alunos (matricula UNSIGNED INT(10) NOT NULL nome CHAR(40)

NOT NULLturma CHAR(20) NOT NULLPRIMARY KEY (matricula))

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 60: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6065

60

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

ALTER TABLE

Altera Tabela

Ex mysqlgtALTER TABLE alunos ADD COLUMN turno char(10) NOT NULL

DROP TABLE

Apaga uma tabela

Ex mysqlgtDROP TABLE alunos

INSERT

Comando utilizado para inserir valores numa tabela

Ex mysqlgtINSERT INTO alunos(matriculanometurmaturno)values(127423Fred Cox JuniorEng EletrocircnicaManhatilde)

SELECT

Comando usado para recuperar valores de uma tabela Este poderoso comando em conjunto

com funccedilotildees possibilita a recuperaccedilatildeo de qualquer valor de uma tabela

Ex mysqlgtSELECT FROM alunos where nome=Fred Cox Junior

mysqlgtSELECT matriculaturno FROM alunos ORDER BY matricula asc

DELETE

Apaga registros em uma tabela Se natildeo for especificada a condiccedilatildeo where todos os dados seratildeo

apagados

Ex MysqlgtDELETE FROM alunos WHERE turno=Manhatilde

UPDATE

Altera dados numa tabela

Ex mysqlgtDROP TABLE alunos

Operadores

Aritmeacuteticos

`+=Adiccedilatildeo

Ex mysqlgt select 3+5

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 61: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6165

61

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

`-=Subtraccedilatildeo

Ex mysqlgt select 3-5

`=Multiplicaccedilatildeo

Exmysqlgt select 35

`=Divisatildeo

Ex mysqlgt select 35

Loacutegicos

`NOT=`Operador loacutegico de negaccedilatildeo NOT Retorna `1 se o argumento eacute falso caso verdadeiro retorna

`0

`OR=`||

Operador loacutegico de escolha OR

`AND=`ampampOperador loacutegico AND

COMPARACcedilAtildeO

`==Igualdade

`ltgtou`=Diferenccedila

`lt==Menor ou igual

`lt=Menor que

`gt==Maior ou igual

`gt=Maior que

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 62: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6265

62

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

Praticando

Apoacutes a instalaccedilatildeo completa do MySQL alguns programas que fazem parte do pacote ajudam a

conectar ao servidor e a realizar todas as tarefas administrativas

Como conectar ao MySQL

Conecte-se ao servidor MySQL com o seguinte comando

mysql -h NOME-DO-SERVIDOR -u NOME-DO-USUARIO

Apoacutes dar o comando o sistema vai pedir a sua senha de usuaacuterio

Dica Se vocecirc instalou o MySQL no seu proacuteprio PC pode usar localhost no lugar de NOME-DO-

SERVIDOR

No exemplo a seguir veja como se conectar como root

mysql -u root -p

Se natildeo foi vocecirc quem fez a instalaccedilatildeo pode precisar contatar o administrador do banco de dados

para saber que valores usar para conectar ao servidor MySQL

Em servidores remotos vocecirc provavelmente precisaraacute usar o SSH para se conectar ao MySQL

Como criar um banco de dados no MySQL

O comando para criar um banco de dados eacute este

CREATE DATABASE nome-do-banco

Para ver todos os bancos de dados existentes no servidor

SHOW DATABASES

Em um exemplo praacutetico a criaccedilatildeo do banco de dados testes ficaria assim

CREATE DATABASE testes

Vocecirc pode exibir os bancos de dados criados atraveacutes do comando SHOW

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 63: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6365

63

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

SHOW DATABASES

Antes de criar uma tabela ou realizar qualquer operaccedilatildeo eacute necessaacuterio selecionar o banco de

dados que vai ser usado

USE testes

Como criar uma tabela no MySQL

Como jaacute foi dito antes de criar uma tabela vocecirc precisa indicar o banco de dados a ser usado ndash

dentro do qual vai criar uma tabela Que tal usarmos o exemplo do toacutepico anterior

USE testes

Agora vamos criar uma tabela dentro dele com o nome clientes

1 CREATE TABLE `clientes` (

2 `idCliente` mediumint(8) unsigned NOT NULL auto_increment

3 `nomeEmpresa` varchar(255)

4 `nomeDiretor` varchar(255) default NULL

5 `numEmpregados` mediumint default NULL

6 PRIMARY KEY (`idCliente`)

7 ) AUTO_INCREMENT=1

Vocecirc pode pedir pro sistema exibir todas as tabelas presentes no banco de dados selecionado

SHOW tables

Para obter informaccedilotildees sobre uma tabela vocecirc pode usar o comando DESCRIBE ou DESC

DESCRIBE clientes

Como inserir mais dados em uma tabela

Vamos ldquopovoarrdquo mais a nossa tabela com alguns dados

1INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(1Malesuada IncJohnny Pedd4847)

2INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(2Aliquam IncAl Capino4135)

3INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(3Union CarbideRobert Ne Diro3755)

4INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(4Magna Carta LtdaWenzel Dashington3071)

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 64: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6465

64

CURSO TEacuteCNICO EM INFORMAacuteTICA PARA INTERNET ndash TURMA 2015

5INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor `numEmpregados`) VALUES

(5Nunc Corp3859)

6INSERT INTO `clientes` (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`) VALUES

(6In CompanyMacaulay Bulkin4440)

Lembra que o campo idCliente foi criado com o paracircmetro auto_increment Seu preenchimento

eacute automaacutetico Vocecirc natildeo precisa informar o seu valor portanto

1 INSERT INTO `clientes`

2 (`idCliente``nomeEmpresa``nomeDiretor``numEmpregados`)

3 VALUES (GameCorpDin Viesel2071)

Como ver os registros na tabela com o comando SELECT

Tal como o nome sugere o comando SELECT seleciona e exibe os registros gravados na tabela

A maneira mais simples de usaacute-lo eacute essa

SELECT FROM clientes

Vocecirc pode refinar a pesquisa de inuacutemeras maneiras

Se quiser ver apenas o conteuacutedo dos campos id_cliente e nome_empresa use-o assim

SELECT id_cliente nome_empresa FROM clientes

Como remover um registro de uma tabela A sintaxe do comando para apagar um registro eacute

DELETE FROM nome-da-tabela WHERE nome-da-coluna=texto

Veja um exemplo praacutetico de uso do comando DELETE

DELETE FROM clientes WHERE nomeEmpresa = GameCorp

Com este comando TODOS os registros que tiverem nomeEmpresa = GameCorp seratildeo

eliminados Neste caso haacute apenas 1 Mas vamos imaginar que houvesse 10 ou 100 registros em

que o nomeEmpresa fosse igual a GameCorp Neste caso seria necessaacuterio usar outro campo

como referecircncia para encontrar o registro que eu desejo eliminar No nosso caso haacute o

campo idCliente que eacute uacutenico ndash ele natildeo se repete dentro da tabela

DELETE FROM clientes WHERE idCliente = 7

Como remover uma tabela ou um banco de dados

Seja cuidadoso(a) O comando DROP apaga permanentemente uma tabela ou um banco de

dados Veja como usar o DROP para eliminar uma tabela

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro

Page 65: Apostila Oficial de Banco de Dados

7232019 Apostila Oficial de Banco de Dados

httpslidepdfcomreaderfullapostila-oficial-de-banco-de-dados 6565

65

DROP TABLE nome-da-tabela

ou como remover um banco de dados

DROP DATABASE nome-do-banco

Como limpar uma tabela

Para limpar uma tabela use o comando TRUNCATE Internamente ele remove a tabela primeiro

e depois a recria com a mesma estrutura ndash soacute que sem os dados Se houver um contador

AUTO_INCREMENT na tabela em questatildeo ele eacute zerado e recolocado Veja como funciona

TRUNCATE TABLE nome-da-tabela

Como alterar um registro no MySQL

Aqui o comando UPDATE entra em accedilatildeo Vamos ver como usaacute-lo para alterar o valor de um

campo dentro de um registro