Lição 1 - Introdução
Origens Sistemas de gerência de banco de dados (SGBD) surgiram no i nício da década de 70 com o objetivo de facilitar a programa!o de aplica"es de banco de dados (BD)# $s primeiros sistemas eram caros e difíceis de usar% re&uerendo especialistas treinados para usar o SGBD específico# 'essa mesma época% ouve um investimento considervel de pes&uisa na rea de banco de dados# *sse investimento resultou em um tipo de SGBD% o SGBD relacional# + partir partir da década de ,0 e devido ao barateamento das plataformas de ard-are.soft-are para e/ecutar SGBD relacional% este tipo de SGBD passou a dominar o mercado% tendo se convertido em padr!o internacional# $ desenvolvimento de sistemas de informa!o ocorre oje &uase &ue e/clusivamente sobre banco de dados% com uso de SGBD relacional# +lém do SGBD relacional% relacional% as pes&uisas na rea de de BD resultaram também em um conjunto conjunto de técnicas% processos e nota"es para o projeto de BD# $ projeto de BD% &ue inicialmente era feito com técnicas empíricas por alguns poucos especialistas no SGBD específico% é e/ecutado oje com au/ílio de técnicas padroniadas e suportadas por ferramentas 1+S*# 2ormou3se ao longo do tempo um conjunto de conecimentos sobre projeto de BD &ue é largamente aceito e deve ser dominado por &ual&uer profissional de 4nformtica# *stes conecimentos s!o ministrados nas universidades% j em cursos de gradua!o% nas disciplinas de fundamentos de banco de dados ou mesmo em disciplinas específicas de projeto de banco de dados# $ projeto de um banco de dados usualmente ocorre em três etapas# + primeira primeira etapa% a modelagem conceitual% procura capturar formalmente os re&uisitos de informa!o de um banco de dados# + segunda segunda etapa% o projeto l5gico% objetiva definir% definir% a nível de SGBD% as estruturas de dados &ue implementar!o os re&uisitos identificados na modelagem conceitual# + terceira terceira etapa% o projeto físico% define par6metros par6metros físicos de acesso acesso ao BD% procurando otimiar a performance do sistema como um todo# + apresenta!o apresenta!o dos dados dados geralmente é semelante semelante a de uma planila eletrnica% eletrnica% porém os SGBD8s possuem características especiais para o armaenamento% classifica!o% gest!o da integridade e recupera!o dos dados# 1om a evolu!o de padr"es de conectividade entre as tabelas de um banco de dados e programas desenvolvidos em linguagens como 9ava% Delpi% :isual Basic% 1;;% etc% a apresenta!o dos dados% bem como a navega!o% passou passou a ser definida pelo programador ou o designer de aplica"es# 1omo oje em dia a maioria das linguagens de programa!o faem liga"es com bancos de dados% a apresenta!o destes tem ficado cada ve mais a critério dos meios de programa!o% faendo com &ue os bancos de dados dei/em de restringir3se
Banco de Dados *nt!o% um banco de dados nada mais é do &ue uma cole!o de dados interrelacionados% logicamente coerentes e com algum significado inerente% isto é% informa"es de interesse de uma ou mais organia"es# S!o conjuntos de registros dispostos em estrutura regular &ue
possibilita a reorgania!o dos mesmos e produ!o de informa!o# =m banco de dados é normalmente% mas n!o necessariamente% armaenado em algum formato de m&uina legível para um computador# > uma grande variedade de bancos de dados% desde simples tabelas armaenadas em um ?nico ar&uivo até gigantescos bancos de dados com mil"es de registros% armaenados em salas ceias de discos rígidos# *m um SGBD deve3se ter as seguintes características@ 3Aersistência dos objetos do BD@ assegura &ue os objetos armaenados ser!o mantidos no banco 3Defini!o e manipula!o dos dados (DDC e DC)@ o banco deve disponibiliar% aos seus usurios% linguagens para a manipula!o dos dados% bem como a defini!o da estrutura destes 31arga e descarga@ fun"es &ue permitem o rpido carregamento . descarregamento dos dados 315pia e recupera!o@ fun"es para a e/ecu!o de bacEups e recupera!o dos dados 3Segurana@ defini!o e implementa!o de vrios níveis de segurana% tais como@ acesso a bancos% tabelas% colunas e até linas destas tabelas 34ntegridade@ defini!o e implementa!o das regras do neg5cio por meio de integridade% tais como@ restri"es a atributos e integridade referencial 31ontrole de concorrência das transa"es@ controle do acesso concorrente dos vrios usurios de um banco 3Desempeno@ implementa!o de estruturas de dados &ue possibilitem o rpido acesso
Um exemplo de SGBD $ Oracle é um SGBD (sistema gerenciador de banco de dados) &ue surgiu no fi m dos anos 70% &uando CarrF *llison vislumbrou uma oportunidade &ue outras companias n!o aviam percebido% &uando encontrou uma descri!o de um prot5tipo funcional de um banco de dados relacional e descobriu &ue nenuma empresa tina se empenado em comercialiar essa tecnologia# *llison e os co3fundadores da $racle 1orporation% Bob iner e *d $ates% perceberam &ue avia um tremendo potencial de neg5cios no modelo de banco de dados relacional tornando assim a maior empresa de soft-are empresarial do mundo# $ SGBD da $racle é líder de mercado# $ $racle i foi pioneira no suporte ao modelo -eb# $ $racle H0g% mais recente% se baseia na tecnologia de grid# Iecentemente fora lanado o $racle HHg &ue veio com melorias em rela!o ao $racle H0g# +lém da base de dados% a $racle desenvolve uma suíte de desenvolvimento camada de $racle Developer Suite% utiliada na constru!o de programas de computador &ue interagem
com a sua base de dados# + $racle também criou a linguagem de programa!o AC.SJC% utiliada no processamento de transa"es# $utros e/emplos de SGBDs@ SJC Server% FSJC% +ccess% 4nterbase% Aarado/% SFbase#
O projeto de banco de dados geralmente ocorre em etapas! " modelagem conceitual# o projeto l$gico e o projeto %&sico' A sua resposta : +firma!o correta# Iesposta correta#
Modelos de base de dados Um modelo de (banco de) dados é uma descrição dos tipos de informações que estão armazenadas em um banco de dados. O modelo plano (ou tabular) consiste de matrizes simples, bidimensionais, compostas por elementos de dados: inteiros, números reais, etc. ste modelo plano é a base das planil!as eletr"nicas. O modelo em rede permite que #$rias tabelas se%am usadas simultaneamente atra#és do uso de apontadores (ou refer&ncias). 'lumas colunas cont&m apontadores para outras tabelas ao in#és de dados. 'ssim, as tabelas são liadas por refer&ncias, o que pode ser #isto como uma rede. Uma #ariação particular deste modelo em rede, o modelo !ier$rquico, limita as relações uma estrutura semel!ante a uma $r#ore (!ierarquia * tronco, al!os), ao in#és do modelo mais eral direcionado por rafos. +ases de dados relacionais consistem principalmente de tr&s componentes: uma coleção de estruturas de dados, nomeadamente relações, ou informalmente tabelas uma coleção dos operadores, a $lebra e o c$lculo relacional e uma coleção de restrições da interidade, definindo o con%unto consistente de estados de base de dados e de alterações de estados. 's restrições de interidade podem ser de quatro tipos: dom-nio (também con!ecidas como tpe), atributo, rel#ar (#ari$#el relacional) e restrições de base de dados. /iferentemente dos modelos !ier$rquico e de rede, não e0istem quaisquer apontadores, de acordo com o 1rinc-pio de 2nformação: toda informação de#e de ser representada como dados qualquer tipo de atributo representa relações entre con%untos de dados. 's bases de dados relacionais permitem aos utilizadores (incluindo proramadores) escre#erem consultas (queries) que não foram antecipadas por quem pro%etou a base de dados. 3omo resultado, bases de dados relacionais podem ser utilizadas por #$rias aplicações em forma que os pro%etistas oriinais não pre#iram, o que é especialmente importante em bases de dados que podem ser utilizadas durante décadas. 2sto tem tornado as bases de dados relacionais muito populares no meio empresarial. O modelo relacional é uma teoria matem$tica desen#ol#ida por dard 4ran5 3odd, matem$tico e
pesquisador da 2+6, para descre#er como as bases de dados de#em funcionar. mbora esta teoria se%a a base para o soft7are de bases de dados relacionais, poucos sistemas de estão de bases de dados seuem o modelo de forma restrita ou ao pé da letra e todos t&m funcionalidades que #iolam a teoria, desta forma #ariando a comple0idade e o poder. ' discussão se esses bancos de dados merecem ser c!amados de relacional ficou esotada com o tempo, com a e#olução dos bancos e0istentes. Os bancos de dados !o%e implementam o modelo definido como ob%eto*relacional.
De acordo com o Arincípio de 4nforma!o% toda informa!o deve de ser representada como dados# A sua resposta : :erdadeiro Iesposta 1orreta
Lição ( - "bordagem )ntidade *elacionamento )ntidade *elacionamento Entidade Relacionamento 3omo #imos na primeira lição a primeira etapa do pro%eto de um banco de dados é a construção de um modelo conceitual, a c!amada modelaem conceitual. O ob%eti#o da modelaem conceitual é obter uma descrição abstrata, independente de implementação em computador, dos dados que serão armazenados no banco de dados. ' técnica de modelaem de dados mais difundida e utilizada é a abordaem entidade*relacionamento (8). 9esta técnica, o modelo de dados é representado atra#és de um modelo entidade*relacionamento (modelo 8). Usualmente, um modelo 8 é representado raficamente, atra#és de um diarama entidade*relacionamento (/8). ' abordaem 8 foi criada em ;<= por 1eter 3!en. la pode ser considerada como um padrão de fato para modelaem conceitual. 6esmo as técnicas de modelaem orientada a ob%etos que t&m surido nos últimos anos baseiam*se nos conceitos da abordaem 8.
+ ar&uitetura de um banco de dados relacional pode ser descrita de maneira informal ou formal# 'a descri!o informal estamos preocupados com aspectos prticos da utilia!o e usamos os termos tabela% lina e coluna# 'a descri!o formal estamos preocupados com a sem6ntica formal do modelo e usamos termos como rela!o (tabela)% tupla (linas) e atributo(coluna)#
+abelas ,ou relaçes# ou entidades. Kodos os dados de um banco de dados relacional (BDI) s!o armaenados em tabelas# =ma tabela é uma simples estrutura de linas e colunas# *m uma tabela% cada lina contém um mesmo conjunto de colunas# *m um banco de dados podem e/istir uma ou centenas de tabelas% sendo &ue o limite pode ser imposto tanto pela ferramenta de soft-are utiliada% &uanto pelos recursos de ard-are disponíveis no e&uipamento# +s tabelas associam3se entre si através de regras de relacionamentos% estas regras consistem em associar um ou vrios atributo de uma tabela com um ou vrios atributos de outra tabela# +&ui um e/emplo de uma tabela &ue armaena dados@ /odigo)mp 0ome /odigoDepto
*L *M *N *H Kabela H
Soua Santos Silva Soares
DH DN DH DH
/ateguncional
1L 1L 1N 3
Registros (ou tuplas) 3ada lin!a formada por uma lista ordenada de colunas representa um reistro ou tupla. Os reistros não precisam conter informações em todas as colunas, podendo assumir #alores nulos quando assim se fizer necess$rio. 8esumidamente, um reistro é uma inst>ncia de uma tabela, ou entidade.
Colunas (ou atributos) 's colunas de uma tabela são também c!amadas de 'tributos. 'o con%unto de #alores que um atributo pode assumir c!ama*se dom-nio. 1or e0emplo: em um campo do tipo numérico, serão somente armazenados números. O conceito mais similar a dom-nio é o de ?ipo 'bstrato de /ados em linuaens de proramação, ou se%a são meta*dados (dados acerca de dados).
Chave 's tabelas relacionam*se umas as outras atra#és de c!a#es. Uma c!a#e é um con%unto de um ou mais atributos que determinam a unicidade de cada reistro. 1or e0emplo, se um banco de dados tem como c!a#es 3@dio do 1roduto e 2/ Aistema, sempre que acontecer uma inserção de dados o sistema de erenciamento de banco de dados ir$ fazer uma consulta para identificar se o reistro %$ não se encontra ra#ado na tabela. 9este caso, um no#o reistro não ser$ criado, resultando esta operação apenas da alteração do reistro e0istente. ' unicidade dos reistros, determinada por sua c!a#e, também é fundamental para a criação dos -ndices. ?emos dois tipos de c!a#es: Chave primária: (1B *
1rimar Be) é a c!a#e que identifica cada reistro dando*l!e unicidade. ' c!a#e prim$ria nunca se repetir$. Uma c!a#e prim$ria é uma coluna ou uma combinação de colunas cu%os #alores distinuem uma lin!a das demais dentro de uma tabela. 9a tabela do e0emplo acima, a c!a#e prim$ria é a coluna CodigoEmp. ' ?abela C apresenta um e0emplo de uma tabela que possui uma c!a#e prim$ria composta (colunas 3odiomp e 9o/epen). 9este caso, apenas um dos #alores dos campos que compõem a c!a#e não é suficiente para distinuir uma lin!a das demais, %$ que tanto um c@dio de empreado (3odiomp) pode aparecer em diferentes lin!as, quanto um número de dependente (9o/epen) pode aparecer em diferentes lin!as. D necess$rio considerar ambos #alores (3odiomp e 9o/epen) para identificar uma lin!a na tabela, ou se%a para identificar um dependente.
/odigo)mp
0oDepen
0ome
+ipo
Data0asc
*H *H *N *L *L
0H 0N 0H 0H 0N
9o!o aria +na Aaula 9osé
2ilo *sposa *sposa *sposa 2ilo
HN.HN.H 0H.0H.L0 0L.HH.LL 0O.07.P0 0M.0N.,L
Kabela N Aela defini!o acima% na tabela N% &ual&uer combina!o de colunas &ue contena as colunas 1odigo*mp e 'oDepen é uma cave primria# Aor isso% nas defini"es formais de cave primria% e/ige3se &ue essa seja mínima# =ma cave é mínima &uando todas suas colunas forem efetivamente necessrias para garantir o re&uisito de unicidade de valores da cave# Chave Estrangeira: (4B * 4orein Be) é
a c!a#e formada atra#és de um relacionamento com a c!a#e prim$ria de outra tabela. /efine um relacionamento entre as tabelas e pode ocorrer repetidas #ezes. 3aso a c!a#e prim$ria se%a composta na oriem, a c!a#e estraneira também o ser$.
+ cave estrangeira é o mecanismo &ue permite a implementa!o de relacionamentos em um banco de dados relacional# 'o banco de dados abai/o% a coluna 1odigoDepto da tabela M é uma cave estrangeira em rela!o a cave primria da tabela O# 4sso significa &ue% na tabela M% n!o podem aparecer linas &ue contenam um valor do campo 1odigoDepto &ue n!o e/ista na coluna de mesmo nome da tabela O# + interpreta!o desta restri!o é &ue todo empregado deve estar associado a um departamento# /odigo)mp
0ome
*H *N *M *L
Soua Santos Silva Soares
/odigoDepto /ateguncional
DH DN DN DH
3 1L 1L 1N
/I/
HMN#HNH#MMH3N0 ,H#NNH#HHH3HH MOH#LHH#77L3OL PMH#PN#7LO3,,
Kabela M /odigoDepto
0omeDepto
DH DN DM
1ompras *ngenaria :endas
Kabela O
Relacionamentos 3om o ad#ento do 6odelo de ntidades e 8elacionamentos foi causada uma confusão entre os termos relação e relacionamento.
O 6odelo 8elacional, quando descrito de forma matem$tica, é definido como um modelo formado por relações (no sentido matem$tico) entre os dom-nios. 3ada tupla é um elemento do con%unto relação. Ou se%a, a relação é a tabela. Um relacionamento do 6odelo de ntidades e 8elacionamentos é uma associação entre entidades distintas. 9ão !$ relação direta entre o nome relacionamento e o nome relação. 1orém, um relacionamento do 6odelo de ntidades e 8elacionamentos é traduzido para a criação de atributos com c!a#es e0ternas do 6odelo 8elacional. sta tradução é feita liando*se um campo de uma tabela E com um campo de uma tabela F, por meio da inclusão do campo c!a#e da tabela F como um campo (con!ecido como c!a#e estraneira) da tabela E. 1or meio das c!a#es estraneiras, é poss-#el implementar restrições no AG+/. 0istem aluns tipos de relacionamentos poss-#eis no 68 (o que c!amamos de HcardinalidadeH): *Um para um ( para ) * indica que as tabelas t&m relação un-#oca entre si. Ioc& escol!e qual tabela #ai receber a c!a#e estraneira (0: Um dependente s@ pode ser de um empreado) *Um para muitos ( para 9) * a c!a#e prim$ria da tabela que tem o lado #ai para a tabela do lado 9. 9o lado 9 ela é c!amada de c!a#e estraneira (0: Um departamento pode ter #$rios empreados) *6uitos para muitos (9 para 9) * quando tabelas t&m entre si relação n..n, é necess$rio criar uma no#a tabela com as c!a#es prim$rias das tabelas en#ol#idas, ficando assim uma c!a#e composta, ou se%a, formada por di#ersos campos*c!a#e de outras tabelas. ' relação então se reduz para uma relação ..n, sendo que o lado n ficar$ com a no#a tabela criada. Os relacionamentos para e para 9 podem ser mapeados diretamente em c!a#es estraneiras nas tabelas oriinais. J$ o relacionamento 9 para 9 e0ie o uso de uma tabela au0iliar.
+ 1ave *strangeira é a cave &ue identifica cada registro dando3le unicidade# A sua resposta : 2also Iesposta 1orreta
Juando tabelas têm entre si rela!o n##n% é necessrio criar uma nova tabela com as caves primrias das tabelas envolvidas# A sua resposta @
:erdadeiro Iesposta 1orreta
8estrições de 2nteridade Um dos ob%eti#os primordiais de um AG+/ é a interidade de dados. /izer que os dados de um banco de dados estão -nteros sinifica dizer que eles refletem corretamente a realidade representada pelo banco de dados e que são consistentes entre si. 1ara tentar arantir a interidade de um banco de dados os AG+/s oferecem o mecanismo de restrições de interidade. Uma restrição de interidade é uma rera de consist&ncia de dados que é arantida pelo pr@prio AG+/. 9o caso da abordaem relacional, costuma*se classificar as restrições de interidade nas seuintes cateorias: *Integridade de domínio: 8estrições deste tipo especificam que o #alor de um campo de#e obedecer a definição de #alores admitidos para a coluna (o dom-nio da coluna). 9os AG+/s relacionais comerciais, é poss-#el usar apenas dom-nios pré*definidos (número inteiro, número real, alfanumérico de taman!o definido, data, ...). O usu$rio do AG+/ não pode definir dom-nios pr@prios de sua aplicação (por e0emplo, o dom-nio dos dias da semana ou das unidades da federação). *Integridade de vazio: 'tra#és deste tipo de restrição de interidade é especificado se os campos de uma coluna podem ou não ser #azios (se a coluna é obriat@ria ou opcional). 3omo %$ foi mencionado, campos que compõem a c!a#e prim$ria sempre de#em ser diferentes de #azio. *Integridade de chave: ?rata*se da restrição que define que os #alores da c!a#e prim$ria de#em ser únicos. *Integridade referencial: D a restrição que define que os #alores dos campos que aparecem em uma c!a#e estraneira de#em aparecer na c!a#e prim$ria da tabela referenciada. 's restrições dos tipos acima especificados de#em ser arantidas automaticamente por um AG+/ relacional, isto é, não de#e ser e0iido que o proramador escre#a procedimentos para aranti*las e0plicitamente. K$ muitas outras restrições de interidade que não se encai0am em nen!uma das cateorias acima e que normalmente não são arantidas pelo AG+/. ssas restrições são c!amadas de restrições sem>nticas. 'luns e0emplos de restrições deste tipo poderiam ser: * Um empreado do departamento denominado L4inançasM não pode ter a cateoria funcional Lnen!eiroM. * Um empreado não pode ter um sal$rio maior que seu superior imediato.
+ integridade das caves em um banco de dados trata3se da restri!o &ue define &ue os valores da cave primria devem ser ?nicos# A sua resposta : :erdadeiro Iesposta 1orreta
Lição - 0ormali2ação
9ormalização Os bancos de dados relacionais utilizam a normalização de dados para e#itar redund>ncias e possibilitar um maior desempen!o nas pesquisas. D o processo de oranização eficiente dos dados dentro de um banco de dados cu%os ob%eti#os principais são: . liminar dados redundantes (por e0emplo, armazenando os mesmos dados em mais de uma tabela). C. Garantir que as depend&ncias entre os dados façam sentido (armazenando apenas dados loicamente relacionados em uma tabela). ' normalização de dados é uma série de passos que se seue no pro%eto de um banco de dados que permite um armazenamento consistente e um eficiente acesso aos dados em um banco de dados relacional. sses passos reduzem a redund>ncia de dados e as c!ances dos dados se tornarem inconsistentes. 9o entanto, muitas AG+/s relacionais não t&m separação suficiente entre o pro%eto l@ico da base de dados e a implementação f-sica do banco de dados, e isso tem como consequ&ncia que as consultas feitas a um banco de dados totalmente normalizado t&m um mau desempen!o. 9estes casos, usa*se por #ezes a desnormalização para mel!orar o desempen!o, com o custo de menores arantias de consist&ncia. 0istem cinco est$ios de normalização N, CN, N, PN e QN. 1ara um banco de dados se encontrar em cada um desses est$ios ou formas (denominadas formas normais), cada uma de suas tabelas de#e atender a aluns pré*requisitos. Os pré*requisitos são cumulati#os, isto é, para alcançar a R forma normal (94), um banco de dados precisa atender aos pré*requisitos das R e CR formas normais. /iz*se que uma tabela num banco de dados relacional est$ numa certa forma normal se satisfaz certas condições. /amos aqui uma curta panor>mica informal das mais comuns. 3ada forma normal listada abai0o representa uma condição mais forte que a que a precede na lista. 1ara a maioria dos efeitos pr$ticos, considera*se que as bases de dados estão normalizadas se aderirem terceira forma normal. rimeira !orma "ormal (ou 49) requer que todos os #alores de colunas em uma tabela, se%am
at"micos (e0: um número é um $tomo, enquanto uma lista ou um con%unto não o são). 1or e0emplo, a normalização elimina rupos repetidos pondo*os cada um em uma tabela separada, conectando*os com uma c!a#e prim$ria ou estraneira. #egunda !orma "ormal (ou C49) requer que não !a%a depend&ncia funcional não*tri#ial de um
atributo que não se%a a c!a#e, em parte da c!a#e candidata. $erceira !orma "ormal (ou 49)
requer que não !a%a depend&ncia transiti#a entre os atributos.
!orma "ormal de %o&ce'Codd (ou +394)
requer que não e0ista nen!uma depend&ncia funcional não*tri#ial de atributos em alo mais do que um supercon%unto de uma c!a#e candidata. 9este est$io, todos os atributos são dependentes de uma c!a#e, de uma c!a#e inteira e de nada mais que uma c!a#e (e0cluindo depend&ncias tri#iais, como '*S').
uarta !orma "ormal (ou P49)
requer que não e0ista nen!uma depend&ncia multi*#alorada não* tri#ial de con%untos de atributo em alo mais do que um supercon%unto de uma c!a#e candidata. uinta !orma "ormal (ou Q49 ou 1JT94) requer que não e0ista depend&ncias de %oins não tri#iais
que não #en!am de restrições c!a#e. omain'*e& "ormal !orm (ou /BT94) requer que todas as restrições siam os dom-nios e restrições
c!a#e. Iamos e0plicar mel!or os conceitos da R,CR e R formas normais a seuir.
"s %ormas normais 3rimeira orma 0ormal =ma rela!o est na primeira forma normal se os valores de seus atributos s!o atmicos (simples% indivisíveis) e monovalorados# *m outras palavras% H2' n!o permite Qrela"es dentro de rela"esR ou Qrela"es como atributos de tuplasR# =ma tabela est na primeira forma normal &uando seus atributos n!o contêm grupos de repeti!o# */emplo@ /lienteID 0ome +ele%one
HNM OLP
Iacel 4ngram 9ames rigt
7,
aria 2ernande
LLL3,PH3N0NL LLL3O0M3HPL LLL377P3OH00 LLL3,0,3PMM
*sta tabela não est na primeira forma normal por&ue apresenta grupos de repeti!o (possibilidade de mais de um telefone por cliente)# * para coloc3la na primeira forma normal% esta seria uma alternativa@ /lienteID
0ome
+ele%one
HNM OLP OLP 7,
Iacel 4ngram 9ames rigt 9ames rigt aria 2ernande
LLL3,PH3N0NL LLL3O0M3HPL LLL377P3OH00 LLL3,0,3PMM
$bviamente ainda teremos redund6ncia e por isso devemos prosseguir para a segunda forma normal#
Depend4ncia uncional :amos definir primeiro o &ue seria dependência funcional# +compane os e/emplos# + T B% lê3se@ 3 + funcionalmente determina B
3 B é funcionalmente dependente de + 3 B é fun!o de +# =m atributo B possui uma dependência funcional do atributo + se% para cada valor do atributo +% e/iste e/atamente um ?nico valor do atributo B# $bserve a seguinte tabela@ Identidade
0ome
)ndereço
5abilidade
,7L,ML ,7L,ML ,7L,ML
Udson +rantes Udson +rantes Udson +rantes
Aonta da Araia Aonta da Araia Aonta da Araia
2utebol :oleibol Bas&uete
+&ui% 4dentidade T 'ome 4dentidade T *ndereo as Identidade n!o determina 5abilidade (4dentidade VT >abilidade)% nem o 0ome determina Identidade e 5abilidade n!o determina Identidade# 4sso &uer dier &ue% 0ome é fun!o de Identidade% se eu estiver com o n?mero da Identidade% poderei encontrar o 0ome da pessoa correspondente% mas n!o sua 5abilidade específica#
Segunda orma 0ormal =ma rela!o est na N2' &uando duas condi"es s!o satisfeitas@ H 3 + rela!o est na H2' N 3 Kodo atributo da tabela for dependente funcional da cave completa e n!o de parte da cave# Kodos os atributos n!o3cave dependem funcionalmente de toda a cave primria# =ma tabela na H2' com uma cave formada por apenas um atributo est automaticamente na N2'# $bserve o e/emplo@ )6
)nome
Sexo
Idade
D6
Dnome
Opinião
*H *H *H *N *N *N *M *M
9o!o 9o!o 9o!o aria aria aria 9o!o 9oa"
2 2 2
NL NL NL NN NN NN N7 N7
DH DN DM DN DM DO DN DM
at Juim 2is Juim 2is *st Juim 2is
Boa Boa Satisf# Satisf# Boa Boa
*nt!o organiaremos a tabela montando tabelas seguindo os seguintes critérios de dependência funcional# 2aremos uma tabela para@
W*X% DXY VT *nome (*X T *nome) W*X% DXY VT Se/o (*X T Se/o) W*X% DXY VT 4dade (*X T 4dade) $utra tabela para@ W*X% DXY VT Dnome (DX T Dnome) * uma terceira tabela para@ W*X% DXY T $pini!o )6
)nome
Sexo
Idade
*H *N *M
9o!o aria 9o!o
2
NL NN N7
D6
Dnome
DH DN DM DO
at Juim 2is *st
)6
D6
Opiniao
*H *H *H *N *N *N *M *M
DH DN DM DN DM DO DN DM
Boa Boa Satisf# Satisf# Boa Boa
Depend4ncia +ransiti7a +ntes de passar para a terceira forma normal% vamos definir o conceito de dependência transitiva# Supona &ue tenamos uma tabela com colunas +% B e 1# Se a coluna 1 é funcionalmente dependente de B e B é funcionalmente dependente de +% ent!o 1 é funcionalmente dependente de +# 4sso &uer dier &ue 1 é dependente transitivo de +#
+erceira orma 0ormal + M2' e/ige &ue n!o e/istam atributos transitivamente dependentes da cave#
=m e/emplo de uma tabela na N2' &ue n!o atende o critério para M2' é@ +orneio
"no
8encedor
Data de 0ascimento
4ndiana 4nvitational 1leveland $pen Des oines asters 4ndiana 4nvitational
H, H H H
+l 2redricEson Bob +lbertson +l 2redricEson 1ip asterson
NH.7.H7L N,..HP, NH.7.H7L HO.M.H77
+ cave primria composta (formada por mais de um atributo) é W +orneio% "noY# + tabela n!o est na terceira forma normal por&ue o atributo ZData de nascimentoZ é dependente transitivamente de W +orneio% "noY via o atributo Z 8encedor Z# $ fato de a Data de nascimento n!o ser dependente do 8encedor torna a tabela vulnervel a inconsistências l5gicas% j &ue nada impediria de uma mesma pessoa aparecer com datas de nascimento diferentes em dois registros# Aara atender a terceira forma normal% a mesma informa!o deveria ser dividida em duas tabelas@ +orneio
"no
8encedor
4ndiana 4nvitational 1leveland $pen Des oines asters 4ndiana 4nvitational
H, H H H
+l 2redricEson Bob +lbertson +l 2redricEson 1ip asterson
9ogador
Data de nascimento
1ip asterson +l 2redricEson Bob +lbertson
HO.M.H77 NH.7.H7L N,..HP,
/oncluses 1omo j foi dito% o curso tem como objetivo introduir estes conceitos inciais sobre banco de dados# Se o aluno assim desejar poder consultar o outro curso também oferecido pelo 1DK1 de odelagem de Banco de Dados# 'ele o aluno encontrar e/emplos mais prticos sobre a parte de *I mencionada neste curso e aprofundar também outros conceitos abordados a&ui#
U impossível ter uma tabela na terceira forma normal sem ela estar antes na primeira e segunda forma normal# A sua resposta @
:erdadeiro Iesposta 1orreta