Escolar Documentos
Profissional Documentos
Cultura Documentos
Bancos de dados, (ou bases de dados), so conjuntos de dados com uma estrutura regular que organizam informao. Um banco de dados normalmente agrupa informaes utilizadas para um mesmo fim. Um banco de dados usualmente mantido e acessado por meio de um soft are con!ecido como "istema #erenciador de Banco de $ados ("#B$). %uitas &ezes o termo banco de dados usado como sin'nimo de "#$B. ( modelo de dados mais adotado !oje em dia o modelo relacional, onde as estruturas t)m a forma de tabelas, compostas por lin!as e colunas. *esumindo, um banco de dados uma coleo de dados relacionados. +ntende,se por dado, toda a informao que pode ser armazenada e que apresenta algum significado impl-cito dentro do conte.to ao qual ele se aplica. /or e.emplo, num sistema banc0rio, uma pessoa identificada pelo seu cpf(cliente). +m um sistema escolar a pessoa identificada pelo seu n1mero de matr-cula(aluno). 2lm disso, os dados que sero armazenados em cada situao podem diferir considera&elmente.
Modelo Relacional
( modelo relacional uma teoria matem0tica desen&ol&ida por +dgar 3ran4 5odd para descre&er como as bases de dados de&em funcionar. +mbora esta teoria seja a base para o soft are de bases de dados relacionais, muito poucos sistemas de gesto de bases de dados seguem o modelo de forma restrita, e todos t)m funcionalidades que &iolam a teoria, desta forma &ariando a comple.idade e o poder. 2 discusso se esses bancos de dados merecem ser c!amados de relacional ficou esgotada com tempo, com a e&oluo dos bancos e.istentes. $e acordo com a arquitetura 26"7 8 "/2*5 em tr)s n-&eis, os Bancos de dados relacionais consistem de tr)s componentes9 uma coleo de estruturas de dados, formalmente c!amadas de relaes, ou informalmente tabelas, compondo o n-&el conceitual: uma coleo dos operadores, a 0lgebra e o c0lculo relacionais, que constituem a base da linguagem ";<: e uma coleo de restries da integridade, definindo o conjunto consistente de estados de base de dados e de alteraes de estados. 2s restries de integridade podem ser de quatro tipos9
$e acordo com o /rinc-pio de 7nformao9 toda informao tem de ser representada como dados: qualquer tipo de atributo representa relaes entre conjuntos de dados. 6os bancos de dados relacionais os relacionamentos entre as tabelas no so codificados e.plicitamente na sua definio. +m &ez disso, se fazem implicitamente pela presena de atributos c!a&e. 2s bases de dados relacionais permitem aos utilizadores (incluindo programadores) escre&erem consultas (queries), reorganizando e utilizando os dados de forma fle.-&el e no necessariamente antecipada pelos projetistas originais. +sta fle.ibilidade especialmente importante em bases de dados que podem ser 1
utilizadas durante dcadas, tornando as bases de dados relacionais muito populares no meio comercial. Um dos pontos fortes do modelo relacional de banco de dados a possibilidade de definio de um conjunto de restries de integridade. +stas definem os conjuntos de estados e mudanas de estado consistentes do banco de dados, determinando os &alores que podem e os que no podem ser armazenados.
%atr-cula 6ome D K F L J Eos da "il&a 2na %aria /aulo "imon 5arla Beatriz 2na /aula
Curma D D D D K
Celefone (FD) FGGG,HIHI (KD) DKFL,LJGM (FD) NNHI,MGJL (LJ) HHLG,NHNH (GK) MNMN,IHIH
%atr-cula 6ome
"rie
Curma K
G Eoana /rado ;uinta Cabela D9 $efinio de +6C7$2$+ alunos %atr-cula D K F L J G D K $ata do Ceste KJ,IF,KIIL KJ,IF,KIIL KJ,IF,KIIL KJ,IF,KIIL KJ,IF,KIIL KJ,IF,KIIL DN,IJ,KIIL DN,IJ,KIIL /onto J.J G N DI M.N L.G M.K H.J
G DN,IJ,KIIL DI Cabela K9 $efinio de /(6CU2OP+" 2 segunda entidade identificada no problema so as pontuaes obtidas por cada aluno. >ale ressaltar que durante um per-odo leti&o podero e.istir &0rias a&aliaes, geralmente em datas diferentes, onde de&ero ser armazenados os resultados de todos os alunos para cada um destes testes. 2 tabela K descre&e a entidade pontuaes, que ser&e para o propAsito e.posto anteriormente. 5ada entidade representada por uma tabela, sendo que neste uni&erso de discusso ou modelo, e.istem apenas duas tabelas e um relacionamento entre elas, j0 que cada entidade aluno est0 ligada Q entidade pontuao. +m aplicaes mais comple.as, podero e.istir in1meras tabelas e relacionamentos de forma a permitir a representao do problema abordado.
atingida pelo aluno. 6este caso, como cada aluno identificado unicamente pela sua matr-cula, este atributo ser0 inserido na tabela de pontuaes para permitir associar o aluno Q nota registrada, conforme &isto na Cabela K. /ercebe,se que cada atributo possui um conjunto de &alores &0lidos e aceit0&eis, que definido como dom-nio do atributo. Codas informaes &istas na tabela so te.tuais, isto , sequ)ncias de letras e n1meros, mas notArio que o conjunto de dados contido em cada coluna diferente umas das outras. 6o caso de matr-cula do aluno, o dom-nio dos dados o conjunto dos n1meros inteiros positi&os, j0 que para cada aluno atribu-do um cAdigo numrico que denota a ordem em que este foi matriculado na escola. (u seja, o te.to contido nesta coluna formado por uma combinao de n1meros, portanto no e.istem letras.
Modelagem de dados
R a criao de uma estrutura de dados eletr'nica (banco de dados) que representa um conjunto de informaes. +sta estrutura permite ao usu0rio recuperar dados de forma r0pida e eficiente. ( objeti&o incluir dados em uma estrutura que possibilite transformar os dados originais em &0rios tipos de sa-das como formul0rios, relatArios, etiquetas ou gr0ficos. +ssa capacidade de transformar informaes caracteriza as operaes de banco de dados e a c!a&e de sua utilidade. Um Banco de $ados S B$, representa uma coleo de dados que possui algum significado e objeti&a atender a um conjunto de usu0rios. /or e.emplo, um cat0logo telef'nico pode ser considerado um B$. "endo assim, um B$ no necessariamente est0 informatizado. ;uando resol&emos informatizar um B$, utilizamos um programa especial para realizar essa tarefa. Cal programa denominado "#B$ S "istema #erenciador de Banco de $ados. +m um "#B$ relacional, en.ergamos os dados armazenados em uma estrutura c!amada tabela. 6este modelo, as tabelas de um B$ so relacionadas, permitindo assim que possamos recuperar informaes en&ol&endo &0rias delas. (bser&e o e.emplo abai.o9
6este caso, a tabela 5lientes est0 relacionada com a tabela Celefones. 6ote que o cliente Mrcio possui dois telefones9 um residencial e um celular. 2 cliente <uciane possui um telefone celular, Til4ie possui um residencial e %arlos no possui telefone. +ntretanto, para que possamos implementar, de forma correta, um B$ utilizando algum "#B$, temos que passar por uma fase intermedi0ria S e no menos importante , c!amada modelagem de dados. ;uando estamos aprendendo a programar, em geral di&idimos esta tarefa em tr)s fases9
+ntender determinado problema nem sempre uma tarefa f0cil, principalmente se &oc) no est0 familiarizado com a 0rea de atuao de seu cliente. 2ntes da implementao em um "#B$, precisamos de uma descrio formal da estrutura de um banco de dados, de forma independente do "#B$. +ssa descrio formal c!amada modelo conceitual. 5ostumamos representar um modelo conceitual atra&s da abordagem entidadeS relacionamento (+*). 6esta abordagem constru-mos um diagrama, c!amado diagrama entidade,relacionamento. (bser&e abai.o o diagrama que originou as tabelas 5lientes e Celefones9
+ntidade pode ser entendida como uma UcoisaV ou algo da realidade modelada onde deseja,se manter informaes no banco de dados (B$). /or e.emplo, em um sistema escolar, algumas entidades podem ser os alunos, professores, !or0rio, disciplinas e a&aliaes. 6ote que uma entidade pode representar tanto objetos concretos (alunos), quanto objetos abstratos (!or0rio). 2 entidade forte representada por um retWngulo e a entidade fraca por dois retWngulos, um dentro do outro, onde contm o nome da entidade. (bser&e o e.emplo abai.o.
Entidade Forte 5
Entidade Fraca
ALUNO
2 entidade 2<U6( representa todos os estudantes sobre as quais se deseja manter informaes no B$. ;uando necess0rio especificar um objeto particular (para o e.emplo, determinado estudante) usa,se o termo ocorr)ncia de entidade. *elacionamento um conjunto de associaes entre entidades. ( relacionamento representado por um losango. +sse losango ligado por lin!as aos retWngulos que representam as entidades participantes do relacionamento. ( e.emplo abai.o possui duas entidades, %R$75( e /257+6C+, e um relacionamento c!amado 5(6"U<C2.
( modelo acima informa que o B$ mantm informaes sobre mdicos, pacientes, alm de um conjunto de associaes (consulta), cada uma ligando um mdico a um paciente. ;uando necess0rio especificar um relacionamento particular (para o e.emplo, determinada consulta) usa,se o termo ocorr)ncia do relacionamento. Uma ocorr)ncia de consulta en&ol&e a ocorr)ncia de determinado mdico e a ocorr)ncia de determinado paciente. Um relacionamento pode en&ol&er ocorr)ncias de uma mesma entidade. 6este caso, estamos diante de um auto,relacionamento. (bser&e o e.emplo9
52"2%+6C( um relacionamento que en&ol&e duas ocorr)ncias da entidade /+""(2. /ara facilitar o entendimento, em geral costumamos identificar o papel de cada entidade no relacionamento (para o e.emplo, marido e esposa).
+stamos diante de um relacionamento (possui) entre as entidades +%/*+#2$( e $+/+6$+6C+. 5onsidere as seguintes questes9
Um empregado pode no ter dependentesX Um dependente pode ter mais de um empregado associado X $eterminado empregado pode possuir mais de um dependenteX /ode e.istir dependente sem algum empregado associadoX
6a realidade, as respostas desses questionamentos dependem do problema sendo modelado. +ntretanto, para que possamos e.pressar essas idias no modelo, necess0rio definir uma propriedade importante do relacionamento , sua cardinalidade. 2 cardinalidade um n1mero que e.pressa o comportamento (n1mero de ocorr)ncias) de determinada entidade associada a uma ocorr)ncia da entidade em questo atra&s do relacionamento. +.istem dois tipos de cardinalidade9 m-nima e m0.ima. 2 cardinalidade m0.ima, e.pressa o n1mero m0.imo de ocorr)ncias de determinada entidade, associada a uma ocorr)ncia da entidade em questo, atra&s do relacionamento. 2 cardinalidade m-nima, e.pressa o n1mero m-nimo de ocorr)ncias de determinada entidade associada a uma ocorr)ncia da entidade em questo atra&s do relacionamento. Usaremos a seguinte con&eno para e.pressar a cardinalidade9 61mero (%-nimo, %0.imo) (bser&e as cardinalidades m-nima e m0.ima representadas no modelo abai.o9
/ara fazermos a leitura do modelo, partimos de determinada entidade e a cardinalidade correspondente a essa entidade representada no lado oposto. +m nosso e.emplo, a cardinalidade (I96) faz refer)ncia a +%/*+#2$(, j0 a cardinalidade (D9D), faz refer)ncia 8
a $+/+6$+6C+. 7sso significa que9 Uma ocorr)ncia de empregado pode no estar associada a uma ocorr)ncia de dependente ou pode estar associada a &0rias ocorr)ncias dele (determinado empregado pode no possuir dependentes ou pode possuir &0rios): Uma ocorr)ncia de dependente est0 associada a apenas uma ocorr)ncia de empregado (determinado dependente possui apenas um empregado respons0&el). (bser&ao9 6a pr0tica, para as cardinalidades m0.imas, costumamos distinguir dois tipos9 D (um) e 6 (cardinalidades maiores que D). E0 para a as cardinalidades m-nimas, costumamos distinguir dois tipos9 I (zero) e D (um). 2tributo uma caracter-stica rele&ante associada a cada ocorr)ncia de entidade ou *elacionamento. (bser&e no modelo abai.o a notao utilizada para atributos9
/ara dei.armos o modelo de entidade e relacionamentos mais preciso, necess0rio que !aja uma forma de distinguir uma ocorr)ncia da entidade das demais ocorr)ncias da mesma entidade. "endo assim, cada entidade de&e possuir um identificador. ?0 &0rias formas de identificarmos entidades. (bser&e o modelo abai.o9
6este caso, a entidade aluno possui um 1nico identificador (%atr-cula). +m outras pala&ras, cada aluno de&e possuir uma matr-cula diferente. +.istem situaes onde necess0rio mais de um atributo para identificar determinada entidade. (bser&e9
7magine uma biblioteca onde os li&ros ficam armazenados em prateleiras. +stas prateleiras encontram,se organizadas em corredores. $essa forma, para identificar uma prateleira necess0rio con!ecer seu n1mero, alm do n1mero do corredor correspondente. (bser&e o modelo abai.o9
2qui, o identificador da entidade dependente composto do atributo 6Y%+*( "+;Z[6572, alm do empregado ao qual o dependente est0 relacionado. 6este caso, estamos diante de um relacionamento identificador. ( relacionamento identificador identificado por uma lin!a mais densa. >imos que o identificador de entidade corresponde a um conjunto de atributos e relacionamentos cujos &alores diferenciam cada ocorr)ncia de entidade. 6o caso de relacionamentos, em geral a identificao ocorre atra&s das ocorr)ncias das entidades que fazem parte dele. (bser&e o e.emplo9
( modelo mostra que para cada par (analista, projeto) !0 no m0.imo um relacionamento de alocao. 6o entanto, !0 casos onde pode ser necess0rio relacionar ocorr)ncias de mesmas entidades mais de uma &ez. /or e.emplo, em um modelo de consultas mdicas, determinado paciente pode realizar consultas mais de uma &ez com o mesmo mdico. 6este caso, podemos utilizar um atributo identificador no relacionamento (data8!ora).
10
/ara e.ecutar o $ia, aperte U2ltV \ 3K $igite o comando dia 5lique em +.ecutar
11
!ttp988
.gnome.org8projects8dia8do nld.!tml
7nclusi&e neste lin4 podemos encontrar &erses compiladas para outras plataformas.
+sta ferramenta de f0cil utilizao, portanto apresentaremos apenas alguns recursos em funo da simples operacionalidade.
12
6o primeiro bloco encontramos as ferramentas de aes como selecionar, mo&er, zoom, imagem, lin!a, circulo e outros.
5licando o boto direito sobre a 0rea de trabal!o do diagrama, teremos um menu que nos 14
proporciona di&ersos recursos de edio do objetos. 6a figura abai.o podemos &isualizar as opes principais9
15
16
E!emplo pr$tico
empresa, o mesmo de&e ser imediatamente retirado da equipe Q qual ele pertena. 5ada equipe possui um gerente, respons0&el por coordenar os trabal!os delegados a ela, sendo que este de&e ser necessariamente um funcion0rio da prApria empresa. R preciso salientar que ocorrem situaes onde !0 mais de uma obra em andamento, simultaneamente. $a-, cada obra ter0 &0rias equipes en&ol&idas, j0 que &0rias !abilidades so necess0rias para e.ecutar a construo da mesma. +.istem equipes que participam de &0rias obras ao mesmo tempo, j0 que as suas tarefas no requerem dedicao e.clusi&a a um projeto. +ste o caso dos engen!eiros, que podem projetar e acompan!ar o desen&ol&imento de di&ersas obras simultaneamente, sem que !aja comprometimento na qualidade do seu trabal!o ou at mesmo preju-zos para o cronograma de e.ecuo das mesmas. +ste um cen0rio que descre&e uma aplicao real de um sistema de banco de dados. /ercebe,se que este apresenta &0rias entidades e restries que de&em ser respeitadas a fim de que o sistema funcione da forma esperada. /ara isto, ser0 criado como e.emplo, um modelo +* que descre&a todas as particularidades e.postas anteriormente, ser&indo de base para ilustrar os conceitos que en&ol&em a modelagem de um banco de dados relacional.
18
E!emplo em %M
19
20
&nstalando o DBDesigner
$B$esigner um programa muito bom para quem trabal!a com %@";<. 2tra&s dele pode,se fazer a modelagem das tabelas, ou seja, represent0,las de forma gr0fica, bem como seus relacionamentos. $epois de feita essa modelagem, poss-&el conectar,se ao %@";< para sincronizao. 2tra&s do $B$esigner tambm poss-&el trabal!ar com os dados das tabelas. ( $B$esigner L pode ser bai.ando em9 !ttp988 .fabforce.net8do nloads.p!p $epois de bai.ar o arqui&o, basta descompact0,lo9 ' tar (!fs DBDesigner)*+*,*)*tar*g( +ntre no diretArio $B$esignerL e e.ecute o programa9 ' *-DBDesigner) "e tudo correr bem, o $B$esigner j0 &ai ser carregado e &oc) pode us0,lo perfeitamente. %as infelizmente nem sempre assim. 2s &ezes costumam acontecer alguns erros. 6o caso do seguinte erro9 libbor.t/0*1/.t2*3*so: cannot open s#ared ob4ect file: 5o suc# file or director6 "egundo o erro, no foi encontrada essa biblioteca libborqt,G.H,qtK.F.so. R sA bai.ar a biblioteca em9 !ttp988prdo nloads.sourceforge.net84@li.libs84@li.libsF,borqt,F.I,K.tar.gz $epois de bai.ar o arqui&o descompacte9 ' tar (!fs 76li!libs3/bor.t/3*+/2*tar*g( +ntre no diretArio 4@li.libsF,borqt e e.ecute o instalador9 8 *-install*s# +la foi instalada em 8usr8lib84@li.F8libborqt,G.H.I,qtK.F.so. 2gora tente e.ecutar o $B$esigner, ele de&e funcionar normalmente, pois agora pode encontrar a biblioteca.
21
+.emplo no $B$esigner9
22
%@";<
D S +ntre no 4onsole e mude o usu0rio para root.
K S +ntre na pasta onde o %@";< est0 instalado 6o meu caso, o m@sql foi instalado na pasta usr8bin.
23
24
3oi criado o banco dbCeste, depois foi usando o comando s!o , para e.ibir nosso banco j0 criado. G S /ara usar o banco, digite o comando 9 %9E db<este 2 partir da- estamos usando o banco de dados que criamos. 5om o comando9 9:O; <AB E9 +.ibimos as tabelas do banco de dados. 6o nosso caso est0 &azio, pois ainda no criamos nen!uma tabela.
25
26
27
N S 7ncluindo dados com o comando9 &59ER< &5<O 7nserindo dados na tabela cargos.
/ara &isualizar os dados inseridos, usamos o comando "+<+5C, o qual falaremos mais detal!adamente adiante.
28
29
30
(bser&e, que no primeiro 76"+*C, nAs colocamos os nomes das colunas, mas nos demais no colocamos. 6o necess0rio colocar os nomes das colunas, se &oc) &ai inserir a quantidade e.ata de registro na ordem e.ata da tabela.
31
32
33
/rimeiro e.ibe os dados da tabela funcion0rios antes da alterao: 3az o U/$2C+ $epois e.ibe no&amente os dados da tabela funcion0rios, j0 com o telefone alterado.
34
DD S 5omando "+<+5C9
35
36
37