Ingen verdi ble spesifisert for den tilsvarende nøkkelen. Fysiske datamodeller (internt lag). Generisk samling Verditre

Den er konstruert som følger. Rekkefølgen av poster som tilsvarer postene i kildetabellen er sortert etter verdiene til primærnøkkelen. Logiske poster kombineres til blokker (k poster i blokker).

Blokknøkkelverdien er minimumsnøkkelverdien for postene som er inkludert i blokken. Blokksekvensen er det siste nivået i B-treet. Indeksen for forrige nivå bygges. Oppføringer på dette nivået inneholder verdien av nøkkelen til blokken til neste nivå og koblingspekeren til den tilsvarende blokken; poster på dette nivået er også kombinert til blokker (k poster hver). Deretter konstrueres indeksen til et høyere nivå på lignende måte, og så videre, til antallet indeksoppføringer på et visst nivå ikke er mer enn k.

La oss vurdere prosedyren for å jobbe med et B-tre ved å bruke et eksempel. La det være en fil med forekomster av logiske poster, hvis nøkler har verdiene 2, 7, 8, 12, 15, 27, 28, 40, 43, 50. La oss ta k = 2 (vi kombinerer 2 kopi av poster). Konstruksjonen for dette eksemplet er vist i fig. 9.7 (for å forenkle figuren på nivå 4, presenteres bare nøklene til logiske poster og verdiene til andre felt i disse postene presenteres ikke).


Ris. 9.7.

Blokkene inneholder nøkkelverdien til den tilsvarende blokken. Verdien av k antas å være 2.

Ved konstruksjon av B-treet er alle de originale postene i samme avstand fra overskriften (treet er balansert).

La oss vurdere implementeringen av grunnleggende operasjoner.

Finne og lese en post med en gitt nøkkelverdi

Overskriften leses. Sammenlign den gitte nøkkelverdien med nøkkelverdien til den siste indeksoppføringen. Hvis den spesifiserte nøkkelverdien er større enn eller lik nøkkelverdien til neste indeksoppføring (hvis en slik oppføring eksisterer), så leses en blokk med indeksoppføringer på neste nivå på lenkeadressen spesifisert i gjeldende oppføring. Deretter gjentas prosessen.

Vi antar at alle blokkene ligger i VI. Da vil antall anrop til VI ved søk etter informasjon være lik antall nivåer i treet. Antall trenivåer er lik minimumsverdien l, der betingelsen k l> = N er oppfylt (N er antall logiske poster).

Modifisering (korrigering) av en post

Etter søk og lesing av posten endres de korrigerte feltene. Hvis det ikke er postnøkkelen som korrigeres, settes den endrede posten på plass. Hvis nøkkelverdien endres, slettes den gamle posten (en "tom" post vises i den tilsvarende blokken), og den endrede posten legges til på samme måte som den nylig lagt til.

Slett inngang

Etter søket slettes den funnet posten (en "tom" post legges til den tilsvarende blokken i stedet for denne posten).

Legger til en oppføring

Først av alt bestemmes det hvor den tilføyde posten med en gitt nøkkelverdi skal ligge. Prosedyren for å finne blokken hvor denne posten skal ligge, ligner prosedyren ovenfor for å finne poster med en gitt nøkkelverdi. Hvis den funnet blokken på lavere nivå inneholder en "tom" post, legges den tilføyde posten til denne blokken (med nødvendig omorganisering av postene i blokken).

Hvis det ikke er tomt i den tilsvarende blokken på lavere nivå, deles blokken i to blokker. I den første av dem legges postene inn, i den andre legges resten inn. Nøkkelverdien til hver av de spesifiserte blokkene vil, som beskrevet tidligere, være minimumsnøkkelverdien for postene inkludert i blokken. Den tilføyde posten legges inn i blokken, hvis nøkkelverdi er mindre enn nøkkelverdien til den tilføyde posten. Utseendet til en ny blokk med en ny nøkkelverdi gjør det nødvendig å danne en tilsvarende ny post i indeksen på forrige nivå. Denne posten inneholder den nye nøkkelverdien til den nye blokken og en peker til plasseringen. Fremgangsmåten for å legge til en slik oppføring er den samme som beskrevet ovenfor. Blokken til forrige nivå er plassert der denne posten skal plasseres. Hvis det er en tom plass i blokken, legges posten til blokken, hvis blokken er full, deles den i to blokker, posten skrives til en av blokkene, indeksposten til forrige nivå dannes , etc.

En variant er mulig når du må dele blokken på det øverste nivået og danne et annet nivå av treet.

Tenk på eksemplet vist i fig. 9.7, legger til en oppføring med tast 10.

1. Sammenligning på første nivå.

Flytt langs venstre gren.

2. Sammenligning på andre nivå.

Flytt langs venstre gren.

3. Sammenligning på tredje nivå.

Flytt langs høyre gren.

Søkte i blokk

4. Blokken er full.

Den er delt inn i 2 blokker

Sammenligning 8<10<12.

En oppføring med tast 10 legges inn i blokk 1

På det laveste nivået er det en ny rekord med nøkkelverdien 12. Det er nødvendig å legge til en ny post med nøkkelen 12 og en peker til rekorden på det laveste nivået til indeksen til forrige nivå.

5. En oppføring med en 12 nivå 3 nøkkel må legges til blokken. Blokken er full, den er delt i to blokker

Sammenligning 8<12.

Oppføringen legges til den andre blokken

6. En blokk med ny nøkkel 8 dukket opp på nivå 3. En ny post med nøkkel 8 og en peker til tilsvarende blokk på nivå 3 på nivå 2 må legges til.

7. En oppføring med en nivå 2-tast 8 skal legges til blokken. Blokken er full, den er delt i to blokker.

Posten legges til blokk 1.

8. På nivå 2 har det dukket opp en blokk med en ny nøkkel 15, det er nødvendig å legge til en ny post med en nøkkel 15 og en peker til den tilsvarende blokken på nivå 2 på nivå 1.

1. For at prisen skal erstattes i tabelldelen etter valget av varen, og totalbeløpet beregnes når mengden legges inn, er det nødvendig: å skrive ned navnene på hendelsesbehandlerne i de nødvendige egenskapene til de tilsvarende kolonnene 2. Konseptet "Data" for skjemakontroller inkluderer ikke: variabler, definert i modulen til dette skjemaet + 3. Skjemaattributt: tilgjengelig i sammenheng med dette skjemaet 1. For å håndtere en hendelse for en kontroll, kan du definere: bare én hendelsesbehandler + 2. Hvordan lage et skjemaattributt?: legg til en kontroll og spesifiser det i "Data"-egenskapen navnet på det nye attributtet - på begge måter 3. Hvordan kan du visuelt sjekke effekten av bindingene i konfiguratormodusen på hvordan skjemaet vil se ut når størrelsen endres i 1C: Enterprise 8.0-modus? Skjemameny, punkt Check + 4. Hvor er beskrivelsen av "Clicking"-hendelsesbehandleren til dialogknappen: i skjemamodulen + 5. Ved utforming av skjemadialogen kan du definere ... et hvilket som helst antall skjemaelementer knyttet til samme dataelement + 6. В "Data"-egenskapen til skjemaelementet kan ikke velges: attributt, hvis det er av typen "Verdilager" + 7. Når oppstår hendelsen "Når en rad er aktivert"? velg verdien Ingen ramme for egenskapen Form element frame + 9. Hovedskjemaattributtet ... er fraværende for former av vilkårlig type + 10. Hendelsesbehandlere i skjemamodulen kan defineres: for tabellseksjoner 11. Ved utforming av et skjema dialog, kan du definere ... bare ett skjemaelement , assosiert med ett dataelement - 12. I egenskapen "Data" til skjemaelementet kan du ikke velge: et attributt hvis det har typen "Verdilager" + 13. Ikke-standard dekrypteringsrekkefølge: tilgjengelig i modulen til det tilsvarende objektet - 1. Hendelsesbehandlere i skjemamodulen kan defineres: for attributtene til objektet - 2. Hvilket kontrollelement lar deg endre den relative plasseringen av feltene? separator + For å få tilgang til dataene til gjeldende rad (valgt av brukeren) i tabelldelen av objektet i skjemamodulen (hendelsesbehandler), må du: bruke egenskapene og metodene til skjemaet, skjemaelementer - / referere direkte ved navn på attributtet til tabellseksjonen i sammenheng med gjeldende rad - / referer gjennom en prikk på vegne av tabellseksjonen (Products.Nomenclature) - I applikasjonsmodulen ...: ingen begrensninger på beskrivelsen av variabler , prosedyrer, funksjoner + Kan jeg slette et skjemaelement programmatisk i en dialog? : ikke mulig - / mulig bare hvis det er programmatisk og lagt til Er det mulig å tillate at skjemaet "skjules" (.AllowHiddenState = True;) ?: kun mulig før skjemaet åpnes + Du kan referere til en objektegenskap gjennom : parentes: Objekt [PropertyName ] - begge Ved programmatisk søk ​​etter et ordbokelement, hvis ingenting blir funnet med de angitte parameterne, vil metoden returnere ... en tom lenke + For å få tilgang til et forhåndsdefinert ordbokelement, må du: finne det ved å navn: Directory.ReferenceName.ElementName + I vanlige moduler .. .: ingen begrensninger på beskrivelsen av variabler, prosedyrer, funksjoner - Når kan du nekte å skrive et objekt i en hendelsesbehandler ?: enten i "før skriving" eller "når skriving": alle + Når du skriver et dokument (i noen av dokumentformene) .. .: Til å begynne med utføres prosedyren "Ved skriving" for objektmodulen, deretter - hendelsesbehandleren "Ved skriving" for skjemaet + settes inn i parameteren til det resulterende navngitte omfanget og deretter inkludere omfanget i regnearkdokumentet + Hvilken av følgende strenger kan ikke brukes i en ytre sammenføyningsmodul? Sproobject = Reference books.Nomenclature.CreateElement () - Ved definering av prosedyrer og funksjoner ...: rekkefølgen på beskrivelsene av prosedyrer og funksjoner spiller ingen rolle + 1. Ressursen for informasjonsregisteret kan være av typen: any + 2 Ressursen for akkumuleringsregisteret kan være av typen : numerisk + 3. Det underordnede objektet "Måling" kan være for objekter av formen: alle + 4. Tabelldeler kan være for objekter av formen: for alle + 5. Når du skriver til akkumuleringsregisteret, er bevegelsesdatoen: er stivt knyttet til datoen for dokumentet, hvis dokumentet posteres raskt - 6. Alternativ for dokumentpostering (umiddelbar eller ikke) ... for å spore konteringsalternativet, trenger du for å referere til den aktuelle metoden for den globale konteksten - / posteringsalternativet overføres til posteringsmodulen ...: bruk "gå"-knappen i loggverktøylinjen + 8. Når du definerer referanseboken i konfiguratoren, ble det indikert at den kan redigeres "på begge måter". Kan brukeren, som jobber med en bestemt form av listen, endre redigeringsmetoden (fra "i listen" til "i dialogen")?: kan ikke - / knapp 9. Direkte slettemodus i brukermodus ...: tilgjengelig for begge typer objekter + 10. Sett tekst i et felt som har en samlet verditype (Nomenklaturoppslag). ..: uakseptabelt - 11. Ved gjennomføring i frakoblet modus ... ved bruk av data fra registrene innhentes automatisk data som kun er relevante på dokumenttidspunktet - / ved bruk av data fra registrene må du innhente data som kun er relevante på tidspunktet for dokumentet 12. Når du spesifiserer en egenskap for dokumentet "Slett bevegelser" i tilstanden "Ikke slett bevegelser automatisk" ...: fjerner automatisk rettigheten "UndoPosting" - ved repostering av dokumentet , dens gamle bevegelser slettes ikke lenger automatisk - 13. Hvis dokumentet er tillatt å legges ut umiddelbart i konfiguratoren, så ... kan dokumentet kun utstedes fra gjeldende dato og gjeldende klokkeslett - 14. Når du skriver til register over opplysninger (med en periodisitet i henhold til registraren) for vilkårlige datoer (annet enn datoen for dokumentet), "Periode"-feltet vil inneholde: registreringsdatoen 15. Grensen for de beregnede saldoene for de tilsvarende akkumuleringsregistrene er endret ... etter brukerens skjønn + Ved spesifikasjon av en dokumentegenskap "Slett bevegelser" til tilstanden "Ikke slett bevegelser automatisk"...: Den interaktive handlingen "Angre sveip" slutter å utføre (den blir inaktiv i kontekstmenyen) - Hvilken gruppe med konfigurasjonsobjekter tilhører "Grensesnitt"-objektet? dokumenter- Endring av grensen til de beregnede saldoene for de tilsvarende akkumuleringsregistrene gjøres ... etter brukerens skjønn + Ved definering av referanseboken i konfiguratoren ble det indikert at den er redigert "på begge måter". Kan brukeren, som arbeider med en bestemt form av listen, endre redigeringsmetoden (fra "i listen" til "i dialogen")? : kan, ved å bruke knappen som ligger i kommandokontrollpanelet til katalogen + Som registrar ved informasjonsregisteret kan handle: ethvert objekt - Katalogen kan underordnes: flere kataloger og planer av karakteristiske typer + Når du prøver å skrive til informasjonsregister "Rekord" med måleverdier, hvis kombinasjon allerede er registrert i registeret, ... posten er erstattet - Er det mulig å endre egenskapene til konfigurasjonsobjektet? for hvert konfigurasjonsobjekt er settet med egenskaper strengt definert av programmet og kan ikke endres. På konfigurasjonsstadiet kan du imidlertid angi spesifikke verdier for hver av egenskapene, og definere dens oppførsel i 1C: Enterprise-modus + Nøkkelen kan være av hvilken som helst type: struktur - Hvilken av hovedegenskapene til konfigurasjonsobjektet tillater du skal representere navnet på objektet i 1C: Enterprise-vinduene i en lesbar form (bruker mellomrom)? synonym +

Standarder, restriksjoner og regler - dette er valgfrie attributter som kan identifiseres fra kolonnene og tabellene i databasen. Ha stillhet(standardverdier) er verdier som legges inn i en bestemt kolonne. Begrensninger(begrensninger) brukes som en måte å identifisere gyldige verdier for en kolonne (for å avvise ugyldige verdier) og også som et middel for å sikre dataintegritet i databasetabeller og mellom relaterte tabeller. En begrensning på bare én kolonne kalles en verdi (kolonne) restriksjon: den begrenser kun verdiene til den kolonnen. En begrensning som påvirker flere kolonner kalles en referansebegrensning: i dette tilfellet må kombinasjonen av verdier for kolonnene spesifisert i begrensningen oppfylle kravene til den begrensningen. Det er fem typer begrensninger: NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY og CHECK.

Nullverdi(nullverdi) er en ukjent verdi som NULL-notasjonen brukes for . En nullverdi i en kolonne betyr vanligvis at det ikke er data for den gitte raden i denne kolonnen, fordi verdien er ukjent, eller meningsløs, eller ikke satt, eller vil bli satt i fremtiden. Nullverdier er ikke nullverdier eller 0 verdier, deres virkelige verdier er ukjente, så ingen to nullverdier er like.

IDENTITY-eiendom... Når du oppretter en tabell, kan du spesifisere en av kolonnene som en identitetskolonne ved å legge til IDENTITY-egenskapen i kolonnedefinisjonen. Hvis en kolonne opprettes med IDENTITY-egenskapen, genererer SQL Server automatisk en radverdi for den kolonnen, beregnet fra startverdien og økningsverdien. Startverdien er identitetsverdien for den første raden som er satt inn i tabellen. Et inkrement er mengden som SQL Server øker identitetsverdien med for påfølgende angitte rader. Hver gang en streng legges inn, tildeler SQL Server gjeldende identitetsverdi til et dataelement i identitetskolonnen som legges inn på en ny rad. Den neste linjen som legges inn vil motta en identifikasjonsverdi som er større enn gjeldende maksimale identifikasjonsverdi med mengden av økningen. Identifikasjonskolonner brukes ofte i primærnøkkelbegrensninger på tabeller, som gjør at rader kan identifiseres unikt. For eksempel, hvis du spesifiserer IDENTITET (1, 10), vil verdien av den identifiserende kolonnen for den første linjen som legges inn være 1, for den andre linjen vil den være 10, for den tredje linjen vil den være 20, og så videre . Hvis ingen startverdi eller økning er spesifisert, vil standardverdiene 1 og 1 bli brukt for dem. Identifiserbare kolonner kan ikke inneholde standardverdier og har ikke lov til å bruke nullverdier. Hver av tabellene kan bare ha én identifiserende kolonne.


Som standard er direkte datainntasting i identifiserende kolonner ikke mulig og kan ikke endres. Hvis du vil legge inn en slettet linje på nytt og vil beholde den gamle identifikasjonsverdien til den linjen, kan du overvinne standardinnstillingen ved å bruke en uttalelse som denne:

SET IDENTITET INSERT table.name PÅ

Med denne operatoren kan du sette inn en rad og tilordne verdien til den identifiserende kolonnen du ønsker. Når du er ferdig med å skrive inn linjen, må du avbryte muligheten for å sette inn i identifikasjonskolonnen ved å bruke følgende operator:

SET IDENTITYINSERT tabellnavn AV

Etter det vil SQL Server ta den største verdien fra denne kolonnen som startverdien som brukes når de neste radene legges til.

Opprette en standard for en kolonne som bruker CREATE TABLE-setningen er den foretrukne standardmetoden. Følgende setning oppretter en tabell i MyDB-databasen som inneholder standardverdier for begge kolonnene - kolonne A (av typen char) og kolonneB (av typen int):

LAG TABELL MyTable

(kolonneA char (15) NULL DEFAULT "stk",

columnB int NULL STANDARD 0)

Standard "stk" for kolonne A er kompatibel med char-datatypen for den kolonnen, og standard 0 for kolonne B er kompatibel med int-datatypen. Hvis det ikke er spesifisert en spesifikk verdi for en eller begge kolonnene når du setter inn en ny rad i tabellen, brukes den tilsvarende standardverdien. Derfor er den eneste måten å tilordne NULL-verdier til disse kolonnene å eksplisitt sette inn NULL. Nullverdier er tillatt fordi begge kolonnene har NULL-attributtet spesifisert. Hvis kolonnene var definert som NOT NULL, ville du ikke eksplisitt kunne sette inn en NULL-verdi.

PRIMÆR NØKKEL-begrensning brukes til å spesifisere primærnøkkelen til en tabell, representert av en kolonne eller et sett med kolonner som unikt identifiserer en rad i en tabell. Siden primærnøkkelen identifiserer en rad, inneholder den tilsvarende kolonnen aldri NULL-verdier. Hvis du definerer en PRIMÆR NØKKEL-begrensning på et sett med kolonner, spesifiserer den begrensningen at kombinasjonen av verdiene til disse kolonnene må være unik for hver rad. PRIMARY KEY-begrensningen tillater ikke dupliserte verdier. Hvis en PRIMÆRKØKKEL-begrensning er tilordnet en kolonne eller et sett med kolonner, opprettes det automatisk en unik indeks på den kolonnen eller primærnøkkelkolonnene. En tabell kan bare ha én PRIMÆR NØKKEL-begrensning. En kolonne med et IDENTITY-attributt fungerer godt for en primærnøkkel. Følgende T-SQL-setning er en måte å spesifisere SSN-kolonnen som primærnøkkel når du definerer en tabell.

LAG TABELL-kunde

midinit char (1) NULL,

etternavn tegn (20) IKKE NULL,

Custom_phone char (10) NULL)

Alternativt kan du navngi denne begrensningen ved å legge til nøkkelordet CONSTRAINT. For å tilordne PK_SSN-navnet til PRIMARY KEY-begrensningen din, bruk følgende setning:

LAG TABELL-kunde

(first_name char (20) NOT NULL,

midinit char (1) NULL,

etternavn tegn (20) IKKE NULL,

SSN-tegn (11) BEGRENSNING PK_SSN PRIMÆR NØKKEL,

cust_phone char (10) NULL)

Du kan også spesifisere en PRIMÆRKØKKEL-begrensning etter at alle tabellkolonner er definert. Når du bruker denne syntaksen, må kolonnenavnet være omsluttet av parenteser og etterfulgt av CONSTRAINT-leddet, som vist i følgende setning:

LAG TABELL-kunde

(first_name char (20) NOT NULL,

midinit char (1) NULL,

etternavn tegn (20) IKKE NULL,

cust_phone char (10) NULL,

BEGRENSNING PK_SSN PRIMÆR NØKKEL (SSN))

UNIK begrensning sikrer at ingen dupliserte verdier er tillatt i en kolonne eller et sett med kolonner; med andre ord, unikheten til verdiene i denne kolonnen eller settet med kolonner er sikret. For å opprettholde denne unikheten oppretter SQL Server en unik indeks som standard på kolonnen eller kolonnene som er spesifisert i UNIQUE-begrensningen. UNIQUE-begrensningen kan brukes på alle kolonner som ikke er en del av PRIMÆRKØKKEL-begrensningen. UNIQUE-begrensningen kan brukes for kolonner som tillater nullverdier, mens PRIMARY KEY-begrensningene ikke kan brukes for slike kolonner. En kolonne med en UNIK begrensning kan refereres til med en FOREIGN KEY-begrensning. Flere UNIKE begrensninger kan spesifiseres på en enkelt tabell så lenge det totale antallet indekser for den tabellen ikke overstiger 250 indekser.

For å lage en UNIK begrensning på en tabell ved hjelp av T-SQL, bruk CREATE TABLE-setningen. For eksempel oppretter følgende setning en kundetabell med en UNIK begrensning på SSN-kolonnen som en indeks:

LAG TABELL-kunde

(first_name char (20) NOT NULL,

midinit char (1) NULL,

etternavn tegn (20) IKKE NULL,

SSN-tegn (11) IKKE NULL UNIK KLUSTERET,

cust_phone char (10) NULL)

SJEKK begrensning brukes til å begrense settet med verdier som er tillatt for en kolonne til visse verdier. Verdier som brukes når du setter inn i en kolonne eller oppdaterer en kolonne, kontrolleres for sann (TRUE) det boolske søkeordet spesifisert i begrensningen. For eksempel, hvis vi skulle begrense utvalget av mulige verdier som er tillatt for priskolonnen i varetabellen til mellom $0,01 og $500,00, ville vi brukt følgende operator:

LAG TABELL elementer

(varenavn tegn (15) IKKE NULL,

itemid smallint IKKE NULL IDENTITET (1,1),

pris smallmoney NULL,

item_desc varchar (30) IKKE NULL STANDARD "ingen",

CONSTRAINT PK_ itemid PRIMARY KEY (itemid),

BEGRENSNING CK_price CHECK (pris> = 0,01 OG pris<= 500.00))

Opprette og endre begrensninger ved hjelp av Management Studio

For å opprette en tabell, utvider du servermappen og databasemappen i venstre rute i Management Studio, høyreklikker på Tabeller-mappen og velger deretter Ny tabell fra hurtigmenyen. For å vise Design Table-vinduet for en eksisterende tabell, klikk først på Tabeller-mappen, høyreklikk på det tabellnavnet i høyre rute, og velg deretter Design Table fra kontekstmenyen.

For å indikere om du kan eller ikke kan bruke nullverdier i en hvilken som helst kolonne, bare merk av eller fjern merket for den tilsvarende avmerkingsboksen i Tillat null-kolonnen i Design Table-vinduet. Du kan angi denne parameteren når du oppretter en tabell eller når du endrer den.

For å opprette eller endre UNIK begrensning ved å bruke Management Studio, følg disse trinnene:

1. På verktøylinjen i Design Table-vinduet klikker du på Indekser/nøkler-knappen.

  1. Følgende vindu vises som lar deg opprette, redigere og slette begrensninger knyttet til primærnøkler og unike nøkler.

Velg kolonnenavnene du vil inkludere i begrensningen og definer egenskaper for den.

Du kan spørre PRIMÆR NØKKEL-begrensning én kolonne om gangen eller flere kolonner. Denne kolonnen eller kolonnene må identifisere hver rad i tabellen unikt. Følg disse trinnene for å angi en PRIMÆR NØKKEL-begrensning:

  1. I Design Table-vinduet velger du en kolonne ved å klikke på en av cellene i raden. (Du kan velge flere kolonner ved å holde nede Ctrl-tasten og klikke på de grå cellene til venstre for kolonnenavnene.)

  1. Høyreklikk på en av de valgte kolonnene og velg Angi primærnøkkel fra hurtigmenyen. Et lite nøkkelbilde vises til venstre for kolonnene du spesifiserte for primærnøkkelen.
  2. Hvis du trenger å flytte PRIMARY KEY-begrensningen til en annen kolonne, setter du bare denne nye kolonnen som primærnøkkel. Du trenger ikke eksplisitt å slippe den opprinnelige primærnøkkelen først – SQL Server vil slippe og gjenopprette PRIMÆRKØKKEL-indeksen for deg. Du kan også endre PRIMARY KEY-indeksen i vinduet Egenskaper. Endringene dine trer i kraft etter at du har lagret arbeidet ditt ved å klikke på Lagre-knappen på verktøylinjen.

Å lage SJEKK begrensning ved å bruke Design Table-vinduet, åpne vinduet for tabellen du vil jobbe med og følg trinnene nedenfor.

1. Høyreklikk på Design Table-vinduet og velg Egenskaper fra hurtigmenyen for å vise Egenskaper-vinduet. Klikk på fanen Sjekk begrensninger og klikk på Ny-knappen for tabellen.

3. Legg merke til de tre avmerkingsboksene nederst i dette vinduet. Å merke av for Sjekk eksisterende data ved opprettelse betyr at de eksisterende dataene i tabellen vil bli sjekket mot CHECK-begrensningen, og hvis de ikke samsvarer, vil begrensningen ikke bli opprettet. Hvis du merker av for Håndhev begrensning for replikering, betyr det at denne begrensningen vil bli sjekket når du replikerer data. Å merke av for håndheve-begrensningen for INNSETNINGER og OPPDATERINGER betyr ganske enkelt at KONTROLL-begrensningen vil bli påberopt. Hvis du ikke krysser av i denne boksen, vil denne begrensningen bli opprettet, men den vil ikke aktiveres, dvs. vil ikke ha noen effekt.

4. Klikk Lukk-knappen og klikk deretter Lagre for å lagre den nye begrensningen. For å endre CHECK-begrensningen, bruk Check Constraint-fanen for å endre Begrensningsnavnet, Begrensningsuttrykket og avmerkingsboksene.

Du kan også bruke fanen Sjekk begrensninger for å fjerne en KONTROLL-begrensning ved å velge begrensningsnavnet du vil fjerne fra listen Valgt begrensning og klikke på Slett-knappen.

Laboratoriearbeid er designet for 3 timers klasseromstimer og består i å studere teoretisk materiale og få praktiske ferdigheter i å definere databasetabeller, lage regler, restriksjoner, standardinnstillinger, tilpassede datatyper, indekser. Leveransen av laboratoriearbeidet består i å besvare kontrollspørsmål og demonstrere en individuell oppgave på PC.

  1. Tittel og formål med arbeidet
  2. Individuell oppgave
  3. Skript for å lage en egendefinert datatype og databasetabeller, i samsvar med en individuell oppgave

Kontrollspørsmål

  1. Liste over støttede datatyper?
  2. Egendefinert datatype. Formål og metoder for skapelse?
  3. Måter å definere tabeller på?
  4. Tilordne standarder, regler og begrensninger?
  5. Liste over støttede standarder, restriksjoner, regler?
  6. Metoder for å tildele standarder, restriksjoner, regler
  7. Hva er nullverdier?
  8. Kolonne egenskap IDENTITY?