Ciao, questo è quello da fare e bentornato.
Quindi abbiamo detto che lasceremo il fatto sul nostro progetto per usarlo come database.
Quindi la prima cosa che dobbiamo fare è che dobbiamo progettare il nostro database di lavoro prima di poter
effettivamente creare un database e creare tutte le tabelle nel database e popolarle con i dati.
Pertanto, quando si sta lavorando a un progetto una volta soddisfatti i requisiti aziendali, una delle
prime cose a cui è stato chiesto di progettare i dati.
OK.
Così faresti prima ancora di creare il database, ma le tabelle necessarie che ho fatto per progettare è un passo
molto importante e sarebbe fatto da qualcuno che ha esperienza e se non è fatto correttamente allora ci
possono essere un sacco di problemi come dati incoerenti .
E così vorresti progettare il tuo database in un accordo appropriato su una delle cose in un
database relazionale è quello di ridurre la ridondanza o i loro dati.
E per questo usiamo qualcosa che ci chiama normalizzazione.
Quindi la normalizzazione è un processo che indirizza la ridondanza e ha un sacco di regole e dovresti
usare quelle regole per ridisegnare il tuo database in modo che abbia il maggior numero possibile di
ridondanza dei dati.
Quindi in questa particolare conferenza Vivan guarda a queste regole di normalizzazione.
Quindi impareremo come progettare il database e nella prossima lezione analizzeremo
l'attuale design del database rispetto al progetto e dopo avremo effettivamente creato il nostro database
e anche tutte le tabelle all'interno del Banca dati.
Quindi queste sono le diverse regole di normalizzazione in modo che le forme normali senza corna.
Quindi hai uno e due e mezzo tre e A. B. C. abbastanza per abbastanza 1:06
abbastanza da correre abbastanza da chiudere il primo modulo normale ed è stato introdotto da uno stato preso e discutiamo di quello
che abbiamo menzionato a proposito ha ottenuto una carta e sono finito a una conferenza e questo è stato introdotto nel 1970
e dopo che due e tre abbastanza furono introdotti nel 1971 e nel 1974 KOG ha collaborato con pregiudizi.
E insieme hanno inventato le virgolette normali da ora in pratica per lo più ci si aspetterebbe che il
design fosse in una forma abbastanza tre o BCA e quindi se non è occupato abbastanza Molto probabilmente non
sarebbe diverso da c in nelle diverse tabelle.
A volte ci può essere qualcosa di buono in NC, ma per lo più non si vedrebbe alcun bisogno di un NC.
Ora se un giorno particolare ma è e BC e quindi significa anche che non è tre e metà di esso è anche in
un sottotaglio quindi anche nel volere sapere se un tavolo non è tre e metà vuol dire
che è e si fondono e anche e smussati e non fa nulla significa che è anche in un capo.
Quindi in questa particolare conferenza ne guarderai uno abbastanza per essere abbastanza e il CNF non sarà
abbastanza incendiato a sufficienza, sei sono abbastanza simile a me per database più complicati e non ne parleremo in
futuro se io sento che è necessario che io possa avere una lezione su di loro ma almeno
per ora non voglio discutere di quelle altre forme normali.
OK, questo è quello che abbiamo ora.
Ora andiamo avanti e guardiamo i nostri dati che abbiamo già per il nostro progetto in modo da poter ricordare questo
particolare file.
Quindi questo è il libro mentre il testo archivia la data del tuo libro.
OK.
E sappiamo che il nostro progetto riguarda la marcatura di libri che oscurano e anche i film.
E questa era la data che avevamo per un libro.
Ora immagina che tutti questi dati si trovino in una tabella chiamata libro.
OK.
E qui abbiamo le diverse colonne.
Il primo è l'idea secondo è il titolo del libro.
Terzo è la data di pubblicazione per l'editore.
Cinquantuno è autore di successo Jondrette settimo voto di otto è se è adatto ai bambini o meno.
Ora qui possiamo vedere che una di queste regole ha più autori nella loro virgola separata e nel database
relazionale.
Non vorresti che i tuoi dati non fossero in questo formato.
Non è in formato normalizzato, quindi abbiamo bisogno di iniziare a non essere fuorviati che useremmo il non-modale
delle forme normali che abbiamo appena discusso.
Quindi parlerai di loro e ridurremo la ridondanza ora qui.
È molto difficile cercare una riga particolare se i dati sono così.
Non è molto facile cercare i dati.
Quindi questo non è raccomandato.
Quindi non vuoi memorizzare i tuoi dati in questo modo.
Quindi qui abbiamo questo file chiamato normalizzazione.
E usando questo file ho intenzione di spiegarli entrambi.
Sono diversi nelle mie forme.
No non sono.
Non hai intenzione di discuterne a un livello molto approfondito.
Se hai intenzione di farlo.
Ci vuole un sacco di tempo.
Quindi lo siamo, ma lo faremo ad un livello appropriato e dovresti essere in grado di
capirlo sulle mie forme.
E ogni buon progettista di database che conosco su questo normalizzare le forme a volte alcuni sviluppatori non
lo capiscono e molte volte potrebbe andare bene, ma a volte potrebbero, a causa di una
mancanza di comprensione di ciò, progettare database che non sono realmente progettati.
Ma guardiamo onestamente questo fatto su un sacco di persone che in realtà si confondono tra
tre e trovano abbastanza BCA e sono confusi con Doc indietro.
Spero che questo lo chiarisca.
Spero che sarai in grado di capire queste diverse forme normali in un modo carino.
Quindi il fatto è che non vogliamo che i dati siano in una forma normalizzata.
Quindi quello che dobbiamo fare qui è che abbiamo qui questi diversi valori.
Quindi la prima forma normale richiede che ogni cella in quella tabella abbia un solo valore.
Quindi non dovresti avere un elenco di valori di tali operatori di chiamata e lo conta come valori comici.
Quindi richiede che ogni valore di attributo sia atomico.
OK, questo è il termine che usano per la prima forma normale.
Quindi per fare ciò abbiamo bisogno di dividere questa particolare riga in più righe e ognuno di loro
sarebbe come un solo autore.
Questo è esattamente quello che abbiamo fatto qui.
Così hai impostato i modelli di design book ha più autori e li dividiamo facendo questi diversi
drill e possiamo vedere che ora ognuna delle celle qui come solo una linea conosci lo svantaggio di questo è la
ridondanza in quanto possiamo vedere che il resto di i dati per quel particolare libro sono stati
ripetuti per tutte queste quattro righe.
Tutto ok.
Quindi a causa di ciò abbiamo aumentato la nostra età e abbiamo qualcosa chiamato update delete e
insertion anomalie.
Ora ad esempio l'anomalia di aggiornamento è che se vuoi cambiare qualcosa dovresti cambiare in tutte
le diverse righe.
OK, vuoi cambiarlo per dirigere il primo progetto.
Dovresti cambiarlo in tutti gli altri ruoli e se non lo fai in uno di questi,
si finirebbe con dati incoerenti.
Quindi questa è l'anomalia di aggiornamento.
Nessuna cancellazione è che non sia sicuro cancellare questa particolare riga qui.
OK.
E se c'è un solo libro di questo autore, se hai intenzione di cancellarlo, perdi anche le
informazioni sull'autore insieme al libro.
Quindi non sappiamo più che non abbiamo più queste informazioni sull'autore nel nostro database.
Quindi questa è l'anomalia di cancellazione di un animale di inserimento che non diciamo se vuoi
inserire informazioni solo su questo particolare autore o qualche autore.
Ma non abbiamo informazioni sui libri che l'autore abbia scritto.
Quindi potrebbe non essere possibile inserire quel tipo di dati nel nostro database.
Questo è vero e certamente l'informazione dell'autore perché questo particolare giorno, ma potrebbe
richiedere di aggiungere sempre anche il titolo del libro.
Quindi se abbiamo quel tipo di vincolo allora sarà possibile aggiungerlo.
Quindi questo è l'inserimento e io sono solo.
Quindi per inserirlo è necessario inserire il libro e anche non così, ma questo è un modulo
di backcross, ma ha alcuni problemi qui.
Ora, prima di perfezionare ulteriormente questo schema, dobbiamo capire due cose.
Uno è che abbiamo qui qualcosa che ci chiama chiavi candidate.
Quindi all'inizio della lezione introduttiva abbiamo menzionato la chiave primaria e questa sarebbe la chiave
principale qui.
Ma in generale ci possono essere più chiavi in una tabella per esempio o ID come chiave primaria.
Chiamiamolo come una chiave, ma possono esserci anche altre chiavi.
Ad esempio qui data di pubblicazione del titolo e nome dell'editore.
Insieme, queste tre colonne possono anche essere un'altra chiave.
OK.
E in tal caso lo chiamiamo come chiave candidata.
OK.
Ogni volta che abbiamo più di una chiave, la chiamiamo candidata.
Queste e queste tre colonne identificheranno in modo univoco yaro.
Quindi non puoi come un'altra regola.
Non ha pubblicato le pubblicazioni di Wilder nel 1854.
Non puoi averlo.
Quindi in questo senso chiama come unico.
Allo stesso modo c'è anche un altro tipo di chiave che è la data di pubblicazione di Biden e l'autore.
Quindi insieme la rosa e quelle colonne sarebbero anche uniche.
OK.
Ora in un tavolo se possiedi tipi di chiavi di questo tipo, allora li chiamiamo come tipo di chiavi o
semplicemente come chiavi.
Ma uno di questi che assegneremo come chiave primaria è che normalmente una persona preferisce avere una chiave
primaria come questa che è un numero intero perché aiuterà quella performance.
Quindi, soprattutto se hai tabelle come questa o questa è una tabella di libri e quindi ci sono anche altre
tabelle correlate.
E se per un dato molto se si devono combinare queste tabelle diverse per ottenere i dati
richiesti, allora si combinano quelle tabelle sulla base di alcune imprese comuni.
OK.
Quindi, prima abbiamo inventato quell'elettrodo che ho menzionato sulla chiave straniera.
OK.
Quindi cosa otterresti un finanziamento con una chiave primaria e un tavolo.
Diciamo che c'è una tabella per adulti che fa riferimento a questa chiave primaria.
Quindi, in quel tipo di chiave in quel tipo di scenario, stiamo unendo queste tabelle usando questi attributi
comuni come la chiave esterna che fa riferimento all'indice del diario.
Quindi l'idea per me sarebbe sotto l'ID e questo campo sotto la chiave esterna e l'altra tabella.
Quindi useresti quel campo comune per estrarre i dati.
Vedo quel tipo di query più avanti quando stiamo guardando alcuni dati da quel database.
Si chiama setup pronto in modo che sarebbe molto meglio se la chiave primaria fosse un intero.
Ecco perché molti di loro preferirebbero che fosse un numero intero piuttosto che usare qualcosa come questo
come chiave primaria.
Fondamentalmente ogni persona avrà una chiave primaria.
OK, così puoi averlo in quel modo.
E così in quel caso chiamiamo la chiave primaria come una chiave primaria sostitutiva, le chiavi primarie non possono avere
valori nulli.
Quindi tienilo a mente.
Quindi non puoi avere un valore nullo e non valutare in quanto significa semplicemente che non hai dati per
quel particolare set.
OK così come il valore nullo e nel linguaggio di programmazione Java, ma qui le chiavi univoche possono avere un
po 'di nullable utilizzato.
OK, quindi puoi avere titoli come quelli che sono rodded e nel 1854 può essere.
E poi puoi avere un editore e questo dà quell'unicità.
Non ha importanza nel senso che qualche altra carta può avere piuttosto e non una pubblicazione più ampia.
Quindi, quando non c'è, allora quel vincolo unico è rilassato.
Quindi questa è una cosa.
Quindi chiavi univoche possono come entrambe queste chiavi sono uniche e possono non avere molto uso.
Quindi tienilo a mente.
Ora diamo un'occhiata al Blu N. F. abbastanza bene da capire basta fare supporre che ci
sia un'altra colonna chiamata indirizzo del publisher.
OK, qui aiutiamo l'editore pubblico me.
Quindi ogni editore ha anche un indirizzo.
Quindi, questo significa che l'indirizzo dipende dall'editore l'editore o dipende solo dal
nome del publisher e che tipo di dipendenza sta mostrando in questo modo.
OK.
È questo che stiamo usando, credo con un trattino o no.
Quindi sotto gli angoli una dipendenza funzionale F. D. Si chiama dipendenza funzionale cosa vuol dire
come nome dell'editore stesso nome editore che appare tempi commerciabili.
Quindi l'editore si ripete anche.
OK.
Quindi questa è la cosa.
Ora se abbiamo questo tipo di visualizzazione della nostra dipendenza funzionale di dipendenza sotto questo attributo sul lato sinistro che può
anche essere più di uno sarà OK.
Ora se questo è un sottoinsieme appropriato di un po 'di calore.
OK ora qui abbiamo i diversi tasti su questo particolare attributo sul lato sinistro.
Se si tratta di un sottoinsieme appropriato di qualche chiave, questa relazione particolare ne determinerebbe la seconda.
Per esempio qui pubblichi il tuo nome come parte di qui.
Questa particolare chiave.
Quindi quello che succederà è che avremo qualcuno sottovoce.
Quindi per esempio qui OK.
O'REILLY O'Reilly Media è in estate ha qualche indirizzo.
Quindi lo ripeterà più volte.
Destra.
In modo che detti dati ridondanti.
Quindi il fatto è che se si ha una dipendenza funzionale nell'attributo di sinistra è un sottoinsieme
appropriato di qualche chiave, allora si ha la tabella non e Sicherer non-musulmano e in realtà si è risolto come
OK.
Quindi abbiamo bisogno di scomporre questa tabella in più tabelle in modo che possiamo avere due tabelle diverse.
Editore e libro, quindi non avevamo quasi la possibilità di prenotare come tabella degli editori Antos il nome e l'indirizzo del publisher in
questa nuova tabella.
Co-editore OK, quindi intendi i miei negra qui.
Ok presto.
Quindi ci sono stati altri elementi del libro in grado e questo editore ha anche un ID della chiave primaria e quell'Id farà
riferimento qui nella tabella del libro.
Quindi nel libro non ci sarà più il nome sul loro.
Abbiamo solo l'editore per sottolineare l'ID e pubblicarlo su un ID di scuola sarebbe la
chiave esterna.
Il nostro Nick farebbe riferimento a questo ID e alla tabella dei publisher e che questo
sia il rapporto di molti a uno in un rapporto nel senso qui e molti a molti record di molti
editori pubblicare più di una pubblicazione o registrare ciò che corrisponde esattamente a un editore all'interno questo tavolo.
OK.
Quindi ciò che significa in altre parole è che un singolo editore può pubblicare molti libri e la qualità ha un rapporto molti
a uno.
Quindi, se guardi da questo sito da Bukta editore, sarebbe da molti a uno Dovi sarebbe uno
a molti.
Quindi questa è una cosa.
Allo stesso modo, ammettiamo anche che abbiamo una biografia degli autori di quella che abbiamo ancora una volta in una situazione
simile che chiamiamo dipendenza parziale.
Quindi, come l'autore qui Arthur Meem e stiamo dicendo che c'è qualche biografia associata
all'autore.
Quindi quella dipendenza è il nome dell'autore e l'autore.
Quindi l'autore bio dipende dal nome dell'autore e dal nome dell'autore come un sottoinsieme appropriato di questo
particolare candidato.
E così abbiamo ancora qualcuno e dati e quindi abbiamo bisogno di dividere il tavolo per ulteriori informazioni sul prodotto.
Stiamo introducendo altri due tavoli e autore e libro autrice di underskirt in modo che il tavolo dell'autore abbia il nome
di o proprio come un editore e il libro sull'autore della scuola sia percorribile a piedi per catturare la relazione
tra il libro o meno.
Ma qui abbiamo un diverso tipo di relazione su molti perché un libro particolare può essere scritto
da più autori e un singolo autore può anche scrivere più libri.
Quindi, per catturare quel tipo di relazione tra i chiamanti e molte e molte relazioni, abbiamo bisogno di
introdurre una tabella delle relazioni del tavolo di collegamento e questo è ciò che abbiamo qui qui.
Il libro sottolineato ID è un deferenza estraneo all'idea nella tabella del libro, un autore sa che la
quantità è un riferimento estraneo all'idea in questo campo.
OK se è confuso penso che lo sarà.
Sarà chiaro in seguito.
Ma questo esempio è simile al libro e all'esempio utente che abbiamo visto nella lezione introduttiva di
Verby come utente e libro.
E abbiamo anche avuto un altro tavolo chiamato libro senza punteggio.
Usalo o usa Non so segnapunti che stia catturando la relazione su tutti gli utenti che hanno messo in bookmark
alcuni libri lì.
Anche noi abbiamo il rapporto molti a molti così tanti Troppi introdurremo alla tabella di controllo
dell'edizione in questo modo e c'è anche qualcosa chiamato Occhi.
Rapporto uno a uno e che normalmente si potrebbe fare per un'istanza di una volta, si potrebbe avere questo.
Ad esempio, qui hai la tabella utente accanto a te che ci sono altre 50 colonne in questa tabella.
E così hai un sacco di dati ma anche il nome utente e la password sono memorizzati qui.
Quindi ogni volta che vuoi verificare il nome utente e la password che vuoi acquistare nella mia password
del passaporto dovresti cercare in questo enorme tavolo.
Quindi, invece di fare ciò che puoi fare come puoi dividere questa tabella utente in due
tabelle in una delle tabelle, solo il modo in cui l'e-mail e la password si trovano nell'altra tabella avrai il
resto dei dati.
Allo stesso modo, a volte alcuni dati che alcuni dati possono essere molto grandi non sembravano se
si stesse avviando un MH piuttosto che occupasse molto spazio e non si desidera accedere a quella particolare tabella.
Quindi, nel qual caso è possibile memorizzare quell'immagine in una tabella separata ma si manterrà comunque la stessa
chiave primaria.
OK, quindi entrambe le tabelle avranno visto le chiavi primarie.
OK.
Quindi ci sarà una mappatura uno a uno tra i cavi tra i due tavoli in modo
da farti come questo.
E in un'altra tabella avresti anche una tabella simile con un minor numero di colonne.
OK.
Quindi questa è la relazione uno a uno.
Si chiama normalizzazione.
Quindi è con una seconda forma normale.
Non è una forma normale, è tutto segni.
Prima forma normale.
Quindi
stai praticamente riducendo la ridondanza dividendo la tabella in più tabelle più piccole.
Ora il prossimo è abbastanza occupato.
In realtà il prossimo è abbastanza grande, ma per capirlo facilmente possiamo guardare BCA ora.
Quindi ora capisco B. C. E. abbastanza ragazzi non sono tutti
come sapete abbiamo una nuova colonna chiamata distintivo accanto al tavolo del libro: una nuova colonna chiamata distintivo e distintivo può essere qualcosa come questo come
un senatore il nostro centesimo di sempre.
Quindi il libro se un libro ha questa cosa in questo particolare batch significa che è un bestseller.
Quindi ora supponiamo che dipenda dalla valutazione.
OK tipo di dipendenza funzionale è una grande cosa seguita dal lotto.
Quindi, dipendendo solo dalla valutazione, ma abbastanza occupato perché un tavolo sia abbastanza occupato ci può essere solo un tale tipo di
dipendenze, avrai la chiave sul lato sinistro e sul lato destro come attributo non
primo di ottobre non-prime è solo un attributo che non fa parte di nessuno dei tasti.
OK, quindi sappiamo che abbiamo questo caso qui le chiavi del candidato se il lato destro
del tuo cuore non fa parte di nessuna di quelle chiavi, quindi hai quindi che i non-prime verranno messi sul sito.
E così MBC abbastanza tutte le dipendenze funzionali dovrebbero essere così.
Ma in questo caso la valutazione non è non è una chiave.
E così via indietro non solo attributo non-prime e causa di Daag la tabella del libro dell'edizione del libro non
è buona perché lasciare il CNF OK perché saranno dati ridondanti.
Quindi hai una valutazione.
OK.
E tu come torna.
Quindi, ogni volta che si ripete lo stesso punteggio, la barra si ripeterà.
OK, questa è la cosa.
E così per questo la decomposizione sarebbe del tutto simile al caso precedente.
Quindi, dove creeresti un nuovo tavolo, chiamiamolo come valutazione.
E hai votato come distintivo sottolineato su Witan il tavolo useremo un ID di sottolineatura di rating che
farà riferimento a questo particolare oggetto.
Ora con quella relazione come la relazione del libro di relazione è ordinata e quindi libera.
E in genere ogni relazione se tutte le relazioni sono in BCA e sono di forma quindi è molto improbabile che ne
abbiano che siano nancies.
Questa è la cosa che stavi cercando di essere in questa forma normale di Caernarfon.
Ora tre abbastanza per tre e mezzo solo se una relazione non è abbastanza BCA è anche abbastanza entrata su abbastanza da
una mano.
Ma il fatto è che ci può essere una possibilità quando una relazione non sarà di Cnut.
Ma la relazione è abbastanza N3 per quanto riguarda l'entrata che può essere la tendenza di qualcuno.
Ora se troviamo la stessa funzionalità e poi vediamo distintivi e non-prime.
Ora se supponiamo che questo sia solo una parte di qualche altra chiave.
Ora diciamo che qui c'è una chiave chiamata Pubblicazione del titolo e badge che significa che il badge è
parte di questa chiave.
E questa tradizione è abbastanza soddisfacente, quindi non è nel CNS, ma non è abbastanza vera.
OK.
In questo caso, la Sienna sarà ben guidata, in questo caso potrebbe esserci una certa ridondanza perché la valutazione sui badge
è presente e la valutazione si ripeterà.
Anche il tasso si ripeterà.
Quindi qui abbiamo questo tipo di dipendenza da transetto, quindi abbiamo la chiave X qui che non vale niente da creare.
E questa valutazione non è un sottoinsieme appropriato di alcuna chiave.
OK.
Non è un sottoinsieme appropriato di alcuna chiave, proprio come qui in questo caso, ma fa parte di alcune chiavi.
Ma qui in questo nell'esempio precedente era solo un attributo on in primo, ma qui è un attributo primo e questo
è ciò che sta causando questa relazione in tre e mezzo.
Quindi, in teoria, c'è una certa ridondanza qui a volte potresti dover scendere a compromessi con questo
non-Romney.
Amo questo.
OK.
Quindi potrebbe non essere in BCA abbastanza Barta potremmo dover rimanere con tre NF.
A volte potremmo anche dover rimanere con forme normali più basse che sono inferiori alle tre metà e che lo
farebbero anche se lo faremmo per ragioni di prestazione.
Quindi, a volte, possiamo decidere come consentire determinate ridondanze per motivi di prestazioni.
Quindi la normalizzazione è buona, ma a Nancy in certi casi non è possibile per determinate query,
potrebbe essere lento produrre i risultati che l'utente può vedere.
Pertanto, se esiste un tipo di query di questo tipo, spesso il tempo di risposta del sistema sarà lento.
Quindi non è affatto così ampio che il programma di noi personale in genere consenta anche qualche ridondanza.
Ma ancora dipende dal progetto.
Ma normalmente dovresti cercare di ottenere qualcosa come un dato ridondante gratuito, ma se questo non
è possibile, allora potresti chiamare una certa tendenza.
Quindi in sostanza è quello che abbiamo che è la normalizzazione.
E tu cercheresti sempre le tue tabelle e certe forme normalizzate e forme normali diranno il grado
di ridondanza all'interno della relazione.
OK.
Quindi essenzialmente questo è quello che è.
E tu dovevi rivolgermi all'editore e poi vedermi.
Generalmente scomporremo le tabelle in tabelle più piccole in modo che quelle tabelle più piccole non violino la
forma normale che stiamo osservando.
E così che e e vedere non sarà fatto.
Ma praticamente tu eri a conoscenza che i rapporti di coppia erano o CNF o tre e metà.
Quindi è quello che stavi cercando di fare.
Ti sei rivolto a te.
OK.
Quindi questo è tutto.
Quindi penso che sia una buona introduzione alla progettazione di database.
Successivamente vedremo un design del database per il nostro progetto stesso.
E se sei interessato puoi leggere di più su Googling o per lo più puoi acquistare
il libro che sono specificati nella loro lezione introduttiva su come più approfonditamente la nostra descrizione di tutte queste forme sono normalmente
molti di noi sono anche una specie di confuso tra BCA abbastanza e abbastanza libero.
Ma spero che tu abbia una grande idea su di loro.
OK.
Grazie.
E felice codifica e ci vediamo nel prossimo.