apostila oficial de banco de dados
TRANSCRIPT
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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