Er is geen waarde opgegeven voor de bijbehorende sleutel. Fysieke datamodellen (interne laag). Generieke verzameling Waardenboom

Het is als volgt opgebouwd. De volgorde van records die overeenkomt met de records in de brontabel is geordend op de waarden van de primaire sleutel. Logische records worden gecombineerd tot blokken (k records in blokken).

De bloksleutelwaarde is de minimale sleutelwaarde voor de records die in het blok zijn opgenomen. De blokvolgorde is het laatste niveau van de B-tree. De index van het vorige niveau wordt gebouwd. Records van dit niveau bevatten de waarde van de sleutel van het blok van het volgende niveau en het pointer-adres van de verbinding van het overeenkomstige blok; records van dit niveau worden ook gecombineerd tot blokken (elk k records). Vervolgens wordt de index van een hoger niveau op dezelfde manier geconstrueerd, enzovoort, totdat het aantal indexitems op een bepaald niveau niet meer dan k is.

Laten we eens kijken naar de procedure voor het werken met een B-tree aan de hand van een voorbeeld. Laat er een bestand zijn met instanties van logische records, waarvan de sleutels de waarden 2, 7, 8, 12, 15, 27, 28, 40, 43, 50 aannemen. Laten we voor de bepaaldheid k = 2 nemen (we combineren 2 kopie van records). De constructie voor dit voorbeeld wordt getoond in Fig. 9.7 (om de figuur te vereenvoudigen, op niveau 4 worden alleen de sleutels van logische records weergegeven en worden de waarden van andere velden van deze records niet weergegeven).


Rijst. 9.7.

De blokken bevatten de sleutelwaarde van het bijbehorende blok. De waarde van k wordt als 2 beschouwd.

Door de constructie van de B-tree staan ​​alle originele records op dezelfde afstand van het superscript (de tree is in evenwicht).

Laten we eens kijken naar de implementatie van de basisbewerkingen.

Een record zoeken en lezen met een bepaalde sleutelwaarde

Het superscript wordt gelezen. Vergelijk de opgegeven sleutelwaarde met de sleutelwaarde van het laatste indexitem. Als de opgegeven sleutelwaarde groter is dan of gelijk is aan de sleutelwaarde van het volgende indexitem (als een dergelijk item bestaat), wordt een blok indexitems van het volgende niveau gelezen op het linkadres dat is opgegeven in het huidige item. Daarna wordt het proces herhaald.

We nemen aan dat alle blokken zich in de VI bevinden. Dan is het aantal oproepen naar de VI bij het zoeken naar informatie gelijk aan het aantal niveaus in de boom. Het aantal boomniveaus is gelijk aan de minimumwaarde l waarbij aan de voorwaarde k l> = N (N is het aantal logische records) wordt voldaan.

Wijziging (correctie) van een record

Na het zoeken en lezen van het record worden de te corrigeren velden gewijzigd. Als het niet de recordsleutel is die wordt gecorrigeerd, wordt het gewijzigde record op zijn plaats gezet. Als de sleutelwaarde wordt gewijzigd, wordt het oude record verwijderd (een "leeg" record verschijnt in het bijbehorende blok), en het gewijzigde record wordt op dezelfde manier toegevoegd als het nieuw toegevoegde record.

Invoer verwijderen

Na het zoeken wordt het gevonden record verwijderd (in plaats van dit record wordt een "leeg" record in het corresponderende blok geplaatst).

Een item toevoegen

Allereerst wordt bepaald waar het toegevoegde record met een bepaalde sleutelwaarde moet komen. De procedure voor het vinden van het blok waar dit record zich zou moeten bevinden, is vergelijkbaar met de bovenstaande procedure voor het vinden van records met een bepaalde sleutelwaarde. Als het gevonden blok op een lager niveau een "leeg" record bevat, wordt het toegevoegde record aan dit blok toegevoegd (met de nodige herschikking van de records binnen het blok).

Als er geen lege ruimte is in het corresponderende blok op een lager niveau, wordt het blok in twee blokken verdeeld. In de eerste worden de records ingevoerd, in de tweede worden de rest ingevoerd. De sleutelwaarde van elk van de gespecificeerde blokken is, zoals eerder beschreven, de minimale sleutelwaarde voor de records die in het blok zijn opgenomen. Het toegevoegde record wordt ingevoerd in het blok waarvan de sleutelwaarde kleiner is dan de waarde van de sleutel van het toegevoegde record. Het verschijnen van een nieuw blok met een nieuwe sleutelwaarde maakt het noodzakelijk om een ​​overeenkomstig nieuw record in de index op het vorige niveau te vormen. Dit record bevat de nieuwe sleutelwaarde van het nieuwe blok en een verwijzing naar de locatie. De procedure voor het toevoegen van een dergelijk item is hetzelfde als hierboven beschreven. Het blok van het vorige niveau bevindt zich waar dit record moet worden geplaatst. Als er een lege ruimte in het blok is, wordt het record aan het blok toegevoegd, als het blok vol is, wordt het in twee blokken verdeeld, het record wordt naar een van de blokken geschreven, het indexrecord van het vorige niveau wordt gevormd , enzovoort.

Een variant is mogelijk wanneer je het blok van het bovenste niveau moet verdelen en een ander niveau van de boom moet vormen.

Overweeg, voor het voorbeeld getoond in Fig. 9.7, een invoer toevoegen met toets 10.

1. Vergelijking op het eerste niveau.

Beweeg langs de linker tak.

2. Vergelijking op het tweede niveau.

Beweeg langs de linker tak.

3. Vergelijking op het derde niveau.

Beweeg langs de rechter tak.

Gezocht blok

4. Het blok is vol.

Het is verdeeld in 2 blokken

Vergelijking 8<10<12.

Een invoer met toets 10 wordt ingevoerd in blok 1

Op het laagste niveau is er een nieuw record met een sleutelwaarde van 12. Het is noodzakelijk om een ​​nieuw record met een sleutel van 12 en een wijzer naar het record van het laagste niveau toe te voegen aan de index van het vorige niveau.

5. Een invoer met een 12 niveau 3-sleutel moet aan het blok worden toegevoegd. Het blok is vol, het is verdeeld in twee blokken

Vergelijking 8<12.

Het item wordt toegevoegd aan het tweede blok

6. Op niveau 3 verscheen een blok met een nieuwe sleutel 8. Het is noodzakelijk om een ​​nieuw record toe te voegen met sleutel 8 en een wijzer naar het overeenkomstige blok van niveau 3 op niveau 2.

7. Een invoer met een niveau 2-sleutel 8 moet aan het blok worden toegevoegd. Het blok is vol, het is verdeeld in twee blokken.

Het record wordt toegevoegd aan blok 1.

8. Op niveau 2 is een blok verschenen met een nieuwe sleutel 15, het is noodzakelijk om een ​​nieuw record toe te voegen met een sleutel 15 en een wijzer naar het overeenkomstige blok van niveau 2 op niveau 1.

1. Om ervoor te zorgen dat de prijs in de tabelsectie wordt vervangen na de selectie van het voorraadartikel, en het totale bedrag wordt berekend wanneer de hoeveelheid wordt ingevoerd, is het noodzakelijk: ​​om de namen van gebeurtenishandlers op te schrijven in de vereiste eigenschappen van de corresponderende kolommen 2. Het concept van "Data" voor formulierbesturingen omvat niet: variabelen, gedefinieerd in de module van dit formulier + 3. Formulierattribuut: beschikbaar in de context van dit formulier 1. Om een ​​gebeurtenis af te handelen voor een besturingselement kunt u het volgende definiëren: slechts één gebeurtenishandler + 2. Hoe een formulierattribuut maken?: voeg een besturingselement toe en specificeer het in de "Data" -eigenschap de naam van het nieuwe attribuut - op beide manieren 3. Hoe visueel controleer het effect van de bindingen in de Configurator-modus op hoe het formulier eruit zal zien wanneer de grootte wordt gewijzigd in 1C: Enterprise 8.0-modus? Formuliermenu, item Controle + 4. Waar is de beschrijving van de gebeurtenisafhandelaar "Druk op" van de dialoogknop: in de formuliermodule + 5. Bij het ontwerpen van de formulierdialoog kunt u ... een willekeurig aantal formulierelementen definiëren die zijn gekoppeld aan hetzelfde data-element + 6. В de eigenschap "Data" van het formulierelement kan niet worden geselecteerd: het attribuut, als het van het type "Value store" is + 7. Wanneer vindt de gebeurtenis "Wanneer een rij is geactiveerd" plaats? selecteer de waarde No frame voor de Form element frame eigenschap + 9. Het hoofdform attribuut ... is afwezig voor vormen van willekeurig type + 10. Event handlers in de formuliermodule kunnen worden gedefinieerd: voor tabulaire secties 11. Bij het ontwerpen van een formulier dialoogvenster, u kunt definiëren ... slechts één formulierelement dat is gekoppeld aan één gegevenselement - 12. In de eigenschap "Data" van een formulierelement kunt u niet selecteren: een attribuut, als het van het type "Value store" is + 13 Niet-standaard decoderingsvolgorde: beschikbaar in de module van het bijbehorende object - 1. Event-handlers in de formuliermodule kunnen worden gedefinieerd: voor de attributen van het object - 2. Met welk besturingselement kunt u de relatieve positie van de velden wijzigen ? scheidingsteken + Om toegang te krijgen tot de gegevens van de huidige rij (geselecteerd door de gebruiker) van de tabelsectie van het object in de formuliermodule (gebeurtenishandler), moet u: de eigenschappen en methoden van het formulier gebruiken, formulierelementen - / direct verwijzen door de naam van het attribuut van de tabelsectie in de context van de huidige rij - / verwijs door een punt namens de tabelsectie (Products.Nomenclature) - In de applicatiemodule ...: geen beperkingen op de beschrijving van variabelen , procedures, functies + Kan ik een formulierelement in een dialoogvenster programmatisch verwijderen? : niet - / alleen mogelijk als het programmatisch is en toegevoegd. Is het mogelijk om het formulier te "verbergen" (.AllowHiddenState = True;) ?: het is alleen mogelijk voordat het formulier is geopend + U kunt verwijzen naar een objecteigenschap via: haakjes: Object [PropertyName ] - beide Wanneer programmatisch naar een woordenboekelement wordt gezocht en er wordt niets gevonden met de opgegeven parameters, retourneert de methode ... een lege link + Om toegang te krijgen tot een vooraf gedefinieerd woordenboekelement, moet u: het vinden op naam: Directories.ReferenceName.ElementName + In gemeenschappelijke modules .. ... .: Aanvankelijk wordt de procedure "Bij schrijven" van de objectmodule uitgevoerd, vervolgens - de gebeurtenishandler "Bij schrijven" van het formulier + ingevoegd in de parameter van het resulterende benoemde bereik en vervolgens het bereik opnemen in het spreadsheetdocument + Welke van de volgende tekenreeksen kan niet worden gebruikt in een outer join-module? Sproobject = Reference books.Nomenclature.CreateElement () - Bij het definiëren van procedures en functies ...: de volgorde van de beschrijving van procedures en functies doet er niet toe + 1. Een bron in het informatieregister kan van het type zijn: willekeurig + 2 Een hulpbron in het accumulatieregister kan van het type zijn: numeriek + 3. Het ondergeschikte object "Meting" kan zijn voor objecten van het type: alle + 4. Tabelsecties kunnen zijn voor objecten van de vorm: voor alle + 5. Bij het schrijven naar het accumulatieregister is de verplaatsingsdatum: strikt gebonden aan de datum van het document, als het document snel wordt gepost - 6. Documentpostoptie (al dan niet snel) ... om de boekingsoptie te volgen, moet u om te verwijzen naar de juiste methode van de globale context - / een parameter met boekingsoptie wordt overgebracht naar de boekingsmodule 7. Om documentbewegingen in een register te bekijken, is het noodzakelijk. ..: gebruik de "go"-knop in de log-werkbalk + 8. Bij het definiëren van het naslagwerk in de configurator is aangegeven dat het "in beide richtingen" kan worden bewerkt. Kan de gebruiker, werkend met een bepaalde vorm van de lijst, de bewerkingsmethode wijzigen (van "in de lijst" naar "in het dialoogvenster")?: kan niet - / knop 9. Directe verwijderingsmodus in gebruikersmodus ...: beschikbaar voor beide typen objecten + 10. Zet tekst in een veld met een aggregatiewaardetype (Nomenclatuur opzoeken). ..: onaanvaardbaar - 11. Bij het uitvoeren in de Offline-modus ... bij gebruik van gegevens uit de registers worden automatisch gegevens verkregen die alleen relevant zijn op het moment van het document - / bij gebruik van gegevens uit de registers moet u gegevens die alleen relevant zijn op het moment van het document 12. Bij het specificeren van een eigenschap van het document "Verwijderingen" in de staat "Verwijderingen niet automatisch verwijderen" ...: verwijdert automatisch het recht "Ongedaan maken" - bij het opnieuw plaatsen van het document , zijn oude bewegingen worden niet langer automatisch verwijderd - 13. Als het document onmiddellijk in de configurator mag worden geplaatst, dan ... kan het document alleen worden uitgegeven vanaf de huidige datum en huidige tijd - 14. Bij het schrijven naar de register van informatie (met een periodiciteit volgens de registrar) voor willekeurige data (anders dan de documentdatum), het veld "Periode" zal bevatten: de geregistreerde datum 15. De grens van de berekende saldi voor de overeenkomstige cumulatieve registers wordt gewijzigd. .. naar keuze van de gebruiker + Bij het specificeren van een documenteigenschap "Bewegingen verwijderen" naar de status "Bewegingen niet automatisch verwijderen"...: de interactieve actie "Vegen ongedaan maken" stopt met uitvoeren (deze wordt inactief in het contextmenu) - Tot welke groep configuratie-objecten behoort het object "Interfaces"? documenten- Het wijzigen van de grens van de berekende saldi voor de bijbehorende accumulatieregisters is gemaakt ... naar goeddunken van de gebruiker + Bij het definiëren van het referentieboek in de configurator, werd aangegeven dat het "op beide manieren" kan worden bewerkt. Kan de gebruiker, werkend met een bepaalde vorm van de lijst, de manier van bewerken wijzigen (van "in de lijst" naar "in het dialoogvenster")? : kan, met behulp van de knop in het commando-bedieningspaneel van de directory + Als registrar bij het informatieregister kan handelen: elk object - de Directory kan ondergeschikt zijn aan: verschillende mappen en plattegronden van karakteristieke typen + Wanneer u probeert te schrijven naar de informatieregister "Records" met meetwaarden waarvan de combinatie al in het register is geschreven, ... het record wordt vervangen - Is het mogelijk om de set eigenschappen van het configuratieobject te wijzigen? voor elk configuratieobject wordt de set eigenschappen strikt gedefinieerd door het programma en kan niet worden gewijzigd. In de configuratiefase kunt u echter specifieke waarden instellen voor elk van de eigenschappen, en het gedrag ervan definiëren in de 1C: Enterprise-modus + De sleutel kan van elk type zijn: structuur - Welke van de belangrijkste eigenschappen van het configuratieobject staat toe u om de naam van het object in de 1C: Enterprise-vensters in een leesbare vorm weer te geven (met behulp van spaties)? synoniem +

Standaardinstellingen, beperkingen en regels - dit zijn optionele attributen die te herkennen zijn aan de kolommen en tabellen in de database. Hebben stilte(standaardwaarden) zijn waarden die in een specifieke kolom worden ingevoerd. Beperkingen(beperkingen) worden gebruikt als een manier om geldige waarden voor een kolom te identificeren (om ongeldige waarden te weigeren) en als een middel om de gegevensintegriteit in databasetabellen en tussen gerelateerde tabellen te waarborgen. Een beperking op slechts één kolom wordt een waarde(kolom)beperking genoemd: het beperkt alleen de waarden van die kolom. Een beperking die van invloed is op meerdere kolommen wordt een referentiële beperking genoemd: in dit geval moet de combinatie van waarden voor de kolommen die in de beperking zijn opgegeven, voldoen aan de vereisten van die beperking. Er zijn vijf soorten beperkingen: NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY en CHECK.

Null-waarde(null-waarde) is een onbekende waarde waarvoor de NULL-notatie wordt toegepast . Een null-waarde in een kolom betekent meestal dat er geen gegevens zijn voor de gegeven rij van deze kolom, omdat de waarde onbekend is, geen betekenis heeft, niet is ingesteld of in de toekomst zal worden ingesteld. Null-waarden zijn geen null-waarden of 0-waarden, hun echte waarden zijn onbekend, dus geen twee null-waarden zijn gelijk.

IDENTITY-eigenschap... Wanneer u een tabel maakt, kunt u een van de kolommen opgeven als identiteitskolom door de eigenschap IDENTITY aan de kolomdefinitie toe te voegen. Als een kolom wordt gemaakt met de eigenschap IDENTITY, genereert SQL Server automatisch een rijwaarde voor die kolom, berekend op basis van de startwaarde en de incrementwaarde. De beginwaarde is de identificatiewaarde voor de eerste rij die in de tabel is ingevoegd. Een verhoging is de hoeveelheid waarmee SQL Server de identiteitswaarde verhoogt voor opeenvolgend ingevoerde rijen. Elke keer dat een rij wordt ingevoerd, wijst SQL Server de huidige identiteitswaarde toe aan het gegevensitem in de identiteitskolom die in een nieuwe rij wordt ingevoerd. De volgende ingevoerde regel krijgt een identificatiewaarde die groter is dan de huidige maximale identificatiewaarde met het bedrag van de verhoging. Identificatiekolommen worden vaak gebruikt in primaire-sleutelbeperkingen op tabellen, waardoor rijen uniek kunnen worden geïdentificeerd. Als u bijvoorbeeld IDENTITEIT (1, 10) opgeeft, is de waarde van de identificerende kolom voor de eerste ingevoerde regel 1, voor de tweede regel 10, voor de derde regel 20, enzovoort . Als er geen initiële waarde of increment is opgegeven, dan worden daarvoor de standaardwaarden 1 en 1 gebruikt.Identificerende kolommen kunnen geen standaardwaarden bevatten en mogen geen null-waarden gebruiken. Elk van de tabellen kan slechts één identificerende kolom hebben.


Directe gegevensinvoer in identificerende kolommen is standaard niet mogelijk en kan niet worden gewijzigd. Als u een verwijderde regel opnieuw wilt invoeren en de oude identificerende waarde van die regel wilt behouden, dan kunt u de standaardinstelling omzeilen door een instructie als deze te gebruiken:

SET IDENTITY INSERT table.name ON

Met deze operator kunt u een rij invoegen en de waarde van de gewenste identificerende kolom toewijzen. Als u klaar bent met het invoeren van de regel, moet u de mogelijkheid annuleren om in de identificerende kolom in te voegen met behulp van de volgende operator:

SET IDENTITYINSERT tabelnaam UIT

Daarna neemt SQL Server de grootste waarde uit deze kolom als de beginwaarde die wordt gebruikt bij het toevoegen van de volgende rijen.

Een standaard maken voor een kolom die de instructie CREATE TABLE gebruikt, is de standaardmethode die de voorkeur heeft. De volgende instructie maakt een tabel in de MyDB-database met standaardwaarden voor beide kolommen, columnA (van het type char) en columnB (van het type int):

MAAK TAFEL MyTable

(kolomA char (15) NULL STANDAARD "pcs",

columnB int NULL STANDAARD 0)

De standaard "pcs" voor kolomA is compatibel met het gegevenstype char van die kolom, en de standaard 0 voor kolomB is compatibel met het gegevenstype int. Als bij het invoegen van een nieuwe rij in de tabel geen specifieke waarde is opgegeven voor een of beide kolommen, wordt de bijbehorende standaardwaarde gebruikt. Daarom is de enige manier om NULL-waarden aan deze kolommen toe te wijzen, door expliciet NULL in te voegen. Null-waarden zijn toegestaan ​​omdat beide kolommen het NULL-attribuut hebben opgegeven. Als de kolommen als NOT NULL waren gedefinieerd, zou u niet expliciet een NULL-waarde kunnen invoegen.

PRIMAIRE SLEUTEL beperking gebruikt om de primaire sleutel van een tabel op te geven, weergegeven door een kolom of reeks kolommen die een rij in een tabel op unieke wijze identificeert. Aangezien de primaire sleutel een rij identificeert, bevat de corresponderende kolom nooit NULL-waarden. Als u een PRIMARY KEY-beperking voor een set kolommen definieert, specificeert die beperking dat de combinatie van de waarden van die kolommen uniek moet zijn voor elke rij. De PRIMARY KEY-beperking staat geen dubbele waarden toe. Als een PRIMARY KEY-beperking is toegewezen aan een kolom of reeks kolommen, wordt automatisch een unieke index gemaakt voor die kolom of primaire-sleutelkolommen. Een tabel kan slechts één PRIMARY KEY-beperking hebben. Een kolom met een IDENTITY-attribuut werkt goed voor een primaire sleutel. De volgende T-SQL-instructie is een manier om de SSN-kolom op te geven als de primaire sleutel wanneer u een tabel definieert.

MAAK TAFEL klant

midinit char (1) NULL,

achternaam char (20) NIET NULL,

Cust_phone char (10) NULL)

U kunt deze beperking ook een naam geven door het trefwoord CONSTRAINT toe te voegen. Gebruik de volgende instructie om de PK_SSN-naam toe te wijzen aan uw PRIMARY KEY-beperking:

MAAK TAFEL klant

(first_name char (20) NIET NULL,

midinit char (1) NULL,

achternaam char (20) NIET NULL,

SSN-teken (11) BEPERKING PK_SSN PRIMAIRE SLEUTEL,

cust_phone char (10) NULL)

U kunt ook een PRIMARY KEY-beperking opgeven nadat alle kolommen van de tabel zijn gedefinieerd. Bij gebruik van deze syntaxis moet de kolomnaam tussen haakjes staan ​​en worden opgegeven na de CONSTRAINT-clausule, zoals weergegeven in de volgende instructie:

MAAK TAFEL klant

(first_name char (20) NIET NULL,

midinit char (1) NULL,

achternaam char (20) NIET NULL,

cust_phone char (10) NULL,

BEPERKING PK_SSN PRIMAIRE SLEUTEL (SSN))

UNIEKE beperking zorgt ervoor dat er geen dubbele waarden zijn toegestaan ​​in een kolom of reeks kolommen; met andere woorden, de uniciteit van de waarden in deze kolom of reeks kolommen is gewaarborgd. Om deze uniciteit te behouden, maakt SQL Server standaard een unieke index voor de kolom of kolommen die zijn opgegeven in de UNIQUE-beperking. De UNIQUE-beperking kan worden gebruikt voor elke kolom die geen deel uitmaakt van de PRIMARY KEY-beperking. De UNIQUE-beperking kan worden gebruikt voor kolommen die null-waarden toestaan, terwijl de PRIMARY KEY-beperkingen niet kunnen worden gebruikt voor dergelijke kolommen. Er kan naar een kolom met een UNIQUE-beperking worden verwezen met een FOREIGN KEY-beperking. Er kunnen meerdere UNIQUE-beperkingen worden opgegeven voor een enkele tabel, zolang het totale aantal indexen voor die tabel niet groter is dan 250 indexen.

Gebruik de instructie CREATE TABLE om een ​​UNIQUE-beperking voor een tabel te maken met T-SQL. De volgende instructie maakt bijvoorbeeld een klantentabel met een UNIQUE-beperking op de SSN-kolom als index:

MAAK TAFEL klant

(first_name char (20) NIET NULL,

midinit char (1) NULL,

achternaam char (20) NIET NULL,

SSN char (11) NIET NULL UNIEK GECLUSTERD,

cust_phone char (10) NULL)

CHECK beperking wordt gebruikt om de reeks toegestane waarden voor een kolom te beperken tot specifieke waarden. Waarden die worden gebruikt bij het invoegen in een kolom of het bijwerken van een kolom, worden gecontroleerd op true (TRUE) van de opgegeven Booleaanse zoekterm in de beperking. Als we bijvoorbeeld het bereik van mogelijke waarden voor de prijskolom van de itemstabel zouden beperken tot tussen $ 0,01 en $ 500,00, zouden we de volgende operator gebruiken:

MAAK TAFEL-items

(itemnaam char (15) NIET NULL,

itemid smallint NIET NULL IDENTITEIT (1,1),

prijs smallmoney NULL,

item_desc varchar (30) NIET NULL STANDAARD "geen",

CONSTRAINT PK_ itemid PRIMAIRE SLEUTEL (itemid),

BEPERKTE CK_prijs CONTROLEER (prijs> = 0,01 EN prijs<= 500.00))

Beperkingen maken en wijzigen met Management Studio

Om een ​​tabel te maken, vouwt u de servermap en de databasemap uit in het linkerdeelvenster van Management Studio, klikt u met de rechtermuisknop op de map Tabellen en selecteert u vervolgens Nieuwe tabel in het contextmenu. Om het venster Ontwerptabel voor een bestaande tabel weer te geven, klikt u eerst op de map Tabellen, klikt u met de rechtermuisknop op die tabelnaam in het rechterdeelvenster en selecteert u vervolgens Ontwerptabel in het contextmenu.

Om aan te geven of u al dan niet kunt gebruiken null-waarden in een willekeurige kolom kunt u het betreffende selectievakje in de kolom Nulls toestaan ​​van het ontwerptabelvenster aan- of uitvinken. U kunt deze parameter instellen bij het maken van een tabel of bij het wijzigen ervan.

Aanmaken of wijzigen UNIEKE beperking met Management Studio volgt u deze stappen:

1. Klik op de werkbalk van het Design Table-venster op de knop Indexes / Keys.

  1. Het volgende venster verschijnt waarin u beperkingen kunt maken, bewerken en verwijderen die zijn gekoppeld aan primaire en unieke sleutels.

Selecteer de kolomnamen die u in de beperking wilt opnemen en definieer er eigenschappen voor.

Je kunt vragen PRIMAIRE SLEUTEL beperking één kolom tegelijk of meerdere kolommen. Deze kolom of kolommen moeten elke rij in de tabel op unieke wijze identificeren. Volg deze stappen om een ​​PRIMARY KEY-beperking in te stellen:

  1. Selecteer in het venster Ontwerptabel een kolom door op een van de cellen in de rij te klikken. (U kunt meerdere kolommen selecteren door de Ctrl-toets ingedrukt te houden en op de grijze cellen links van de kolomnamen te klikken.)

  1. Klik met de rechtermuisknop op een van de geselecteerde kolommen en selecteer Primaire sleutel instellen in het contextmenu. Er wordt een kleine sleutelafbeelding weergegeven aan de linkerkant van de kolommen die u hebt opgegeven voor de primaire sleutel.
  2. Als u de PRIMARY KEY-beperking naar een andere kolom moet verplaatsen, stelt u deze nieuwe kolom in als de primaire sleutel. U hoeft de oorspronkelijke primaire sleutel niet expliciet eerst te verwijderen - SQL Server zal de PRIMARY KEY-index voor u verwijderen en opnieuw maken. U kunt ook de PRIMARY KEY-index wijzigen in het venster Eigenschappen. Uw wijzigingen worden van kracht nadat u uw werk hebt opgeslagen door op de knop Opslaan in de werkbalk te klikken.

Maken CHECK beperking gebruik het Design Table-venster, open dat venster voor de tafel waarmee u wilt werken en volg de onderstaande stappen.

1. Klik met de rechtermuisknop op het venster Ontwerptabel en selecteer Eigenschappen in het contextmenu om het venster Eigenschappen weer te geven. Klik op het tabblad Beperkingen controleren en klik op de knop Nieuw voor de tabel.

3. Let op de drie selectievakjes onder aan dit venster. Als u het selectievakje Bestaande gegevens controleren bij aanmaken aanvinkt, betekent dit dat de bestaande tabelgegevens worden gecontroleerd aan de hand van de beperking CHECK en als ze niet overeenkomen, wordt de beperking niet gemaakt. Als u het selectievakje Beperking voor replicatie afdwingen inschakelt, wordt deze beperking gecontroleerd bij het repliceren van gegevens. Het aanvinken van de Enforce constraint for INSERTS and UPDATEs checkbox betekent simpelweg dat de CHECK constraint wordt aangeroepen. Als u dit vakje niet aanvinkt, wordt deze beperking gemaakt, maar niet geactiveerd, d.w.z. zal geen effect hebben.

4. Klik op de knop Sluiten en klik vervolgens op de knop Opslaan om de nieuwe beperking op te slaan. Als u de beperking CHECK wilt wijzigen, gebruikt u het tabblad Beperking controleren om de naam van de beperking, de beperkingsuitdrukking en de selectievakjes te wijzigen.

U kunt ook het tabblad Check Constraints gebruiken om een ​​CHECK-beperking te verwijderen door de naam van de beperking te selecteren die u wilt verwijderen uit de lijst Geselecteerde beperking en op de knop Verwijderen te klikken.

Laboratorium werk is ontworpen voor 3 uur klassikale lessen en bestaat uit het bestuderen van theoretisch materiaal en het verwerven van praktische vaardigheden in het definiëren van databasetabellen, het creëren van regels, beperkingen, standaardinstellingen, aangepaste gegevenstypen, indexen. De levering van laboratoriumwerk bestaat uit het beantwoorden van controlevragen en het demonstreren van een individuele taak op een pc.

  1. Titel en doel van het werk
  2. Individuele opdracht
  3. Scripts voor het maken van een aangepast gegevenstype en databasetabellen, in overeenstemming met een individuele taak

Controlevragen

  1. Lijst met ondersteunde gegevenstypen?
  2. Aangepast gegevenstype. Doel en methoden van creatie?
  3. Manieren om tabellen te definiëren?
  4. Standaardinstellingen, regels en beperkingen toewijzen?
  5. Lijst met ondersteunde standaardinstellingen, beperkingen, regels?
  6. Methoden voor het toewijzen van standaardwaarden, beperkingen, regels
  7. Wat zijn nulwaarden?
  8. Kolom eigenschap IDENTITEIT?