SQL bedste praksis: Her er hvad ANSI-standarderne er til

Afsløring: Din support hjælper med at holde webstedet kørt! Vi tjener et henvisningsgebyr for nogle af de tjenester, vi anbefaler på denne side.


SQL: ANSI-standarder til databaseadministration

Structured Query Language, eller SQL, er standardsproget for databaseadministratorer (DBA) til at få adgang til og administrere databaser.

Gennem årene har SQL udviklet sig, og mange versioner og sprog begyndte at dukke op. For at forene SQL for bedste praksis skabte American National Standards Institute (ANSI) specifikke standarder for sprog i databaseforespørgsler.

SQL-tidslinjen

  • 1970: Dr. Edgar Frank Codd, en datalogi, der arbejder for IBM, udgiver sit berømte papir, ”En relationel model for data for store delte databanker” i juni 1970 i tidsskriftet Association of Computer Machinery (ACM). Dr. Codds model forbliver den definitive model for relationelle databasestyringssystemer (RDBMS).

  • 1978: IBM Corporation udvikler databasesystemet System / R sammen med et databasesprog, Structured English Query Language (SEQUEL) på deres San Jose Research Center i Californien. De baserer det på Dr. Codds originale model, og de kalder det SEQUEL.

  • 1979: Relational Software, Inc. frigiver det første relationsdatabasestyringssystem og navngav det Oracle. Deres RDBMS fungerer på en minicomputer, der bruger SQL som hovedspørgsmål. Produktet bliver så populært, at virksomheden skifter navn til Oracle.

  • 1982: IBM frigiver sit første kommercielle SQL-baserede RDBMS, de navngiver SQL / Data System eller SQL / DS, og i 1985 frigiver de Database 2-systemet eller DB2. Begge systemer kører på en IBM mainframe-computer. IBM portede DB2 til yderligere systemer senere, inklusive dem, der kører på Windows- og UNIX-operativsystemer.

ANSI standarder år for år

  • 1986: SQL-87 blev oprindeligt formaliseret af ANSI i 1986.

  • 1989: American National Standards Institute (ANSI) offentliggør det første sæt standarder for sprog til databaseforespørgsler, kendt som SQL-89 eller FIPS 127-1.

  • 1992: ANSI offentliggør deres reviderede standarder, ANSI / ISO SQL-92 eller SQL2, som var strengere end SQLI og tilføjede nogle nye funktioner. Disse standarder introducerer niveauer af overholdelse, der angav, i hvilket omfang en dialekt opfylder ANSI-standarderne.

  • 1999: ANSI udgiver SQL3 eller ANSI / ISO SQL: 1999 med nye funktioner som support til objekter. Den erstattede niveauerne for overholdelse af kernespecifikationer samt yderligere specifikationer for ni yderligere pakker.

  • 2003: ANSI udgiver SQL: 2003 og introducerer standardiserede sekvenser, XML-relaterede funktioner og identitetskolonner. Oprettelsen af ​​den første RDBMS, Dr. E.F.Codd, dør den 18. april samme år.

  • 2006: ANSI udgiver SQL: 2006 og definerer, hvordan SQL skal bruges med XML og gør det muligt for applikationer at integrere XQuery i deres eksisterende SQL-kode.

  • 2008: ANSI udgiver SQL: 2008 og introducerer INSTEAD OF triggers såvel som TRUNCATE-erklæringen.

  • 2011: ANSI offentliggør SQL: 2011 eller ISO / IEC 9075: 2011, den syvende revision af ISO (1987) og ANSI (1986) -standarden for SQL-databases forespørgselssprog.

De opdeler de nye ANSI SQL-standarder i ni dele, herunder:

  • Del 1 – ISO / IEC 9075-1: 2011 SQL / Framework, der tilbyder logiske koncepter.

  • Del 2 – ISO / IEC 9075-2: 2011 SQL / Foundation, inkluderer centrale elementer SQL.

  • Del 3 ISO / IEC 9075-3: 2008 SQL / Call-Level Interface (CLI) forklarer grænsefladekomponenter, f.eks. Procedurer, strukturer og variable bindinger til eksekvering af SQL-sætninger på forskellige kodesprog, som COBOL og C ++, f.eks..

  • Del 4 ISO / IEC 9075-4: 2011 SQL / Persistent Stored Modules (PSM), skitserer standarder for proceduremæssige udvidelser for SQL, herunder tilstandshåndtering og kontrolstrømmen, samt erklæringsbetingelsessignaler og afskedigelser og lokale variabler og markører. Tildeler udtryk til parametre og variabler. Adresserer vedligeholdelse af vedvarende databasesprogrutiner, som lagrede procedurer.

  • Del 9 ISO / IEC 9075-9: 2008 SQL / Management of External Data (MED), inkluderer udvidelser til SQL til at definere datalinktyper og fremmede datapakker, der gør det muligt for SQL at styre eksterne data. Eksterne data er tilgængelige, men administreres ikke af en SQL-baseret DBMS.

  • Del 10 ISO / IEC 9075-10: 2008 SQL / Object Language Bindings (OLB) definerer semantikken og syntaks for SQLJ. SQLJ er indlejring af SQL i Java. Standarden specificerer mekanismer til den binære portabilitet af SQLJ-applikationer. Det definerer også flere Java-pakker sammen med deres indeholdte klasser.

  • Del 11 ISO / IEC 9075-11: 2011 SQL / Information and Definition Schemata, specificerer informationsskemaet og definitionskemaet, der tilbyder værktøjer til at gøre SQL-objekter og databaser til selvbeskrivende. Inkluderer SQL-objektidentifikator, sikkerheds- og autorisationsspecifikationer samt sikkerheds- og integritetsbegrænsninger. Understøtter funktionerne og pakkerne i ISO / IEC 9075 såvel som funktionerne leveret af SQL-baserede DBMS-implementeringer.

  • Del 13 – ISO / IEC 9075-13: 2008 ISO / IEC 9075-13: 2008: SQL-rutiner og -typer ved hjælp af Java-programmeringssprog (JRT), specificerer kapaciteten til at bruge Java-klasser som SQL-strukturerede brugerdefinerede typer samt påkalde statiske Java-metoder som rutiner inden for en SQL applikation, kendt som Java i databasen.

  • Del 14 – ISO / IEC 9075-14: 2011 SQL / XML-relaterede specifikationer definerer SQL-baserede udvidelser, når du bruger XML med SQL. Den skitserer XML-datatyper, rutiner og funktioner. Den beskriver også XML til SQL datatypekortlægninger til lagring og styring af XML i en SQL-database.

ISO / IEC 13249 SQL multimedie- og applikationspakker fungerer sammen med ISO / IEC 9075 som en separat, men alligevel relevant standard, der specificerer forskellige grænseflader og pakker baseret på SQL.

Målet med denne pakke er at give centraliseret adgang til de mest almindelige databaseapplikationer, såsom billeder, tekst, geografisk data og data mining.

Sådan finder du en kopi af standarderne

Hard kopier af SQL-standardspecifikationer er kun tilgængelige på grund af ISO- og ANSI-copyrightbegrænsninger. Du kan finde en elektronisk kopi på ANSI-webstedet ved at vælge “Access Standards – eStandards Store” og søge efter “SQL Language.”

Der er to varianter af hvert dokument, men de er identiske:

  1. INKITATER / ISO / IEC 9075 – * – 2011

  2. ISO / IEC 9075 – *: 2011

Hver databaseskaber sigter mod at overholde disse standarder, hvilket får de forskellige implementeringer af SQL til at blive ens; hver implementering har dog stadig en unik dialekt til brug af SQL, der inkluderer udvidelser eller tilføjelser til standarderne.

Sætter SQL til testen

De grundlæggende SQL-kommandoer og udsagn er ens for alle SQL-dialekter, så når en DBA ved, hvordan man bruger en, kan de nemt lære andre.

Selvom de fleste SQL-databaseprogrammer har deres egne proprietære udvidelser, skal de i det mindste understøtte disse fem hovedkommandoer på samme måde for at overholde ANSI-standarder:

  1. UPDATE

  2. SLET

  3. VÆLG

  4. INSERT

  5. HVOR

SQL giver en DBA mulighed for at udføre følgende handlinger i en database:

  • Udfør forespørgsler

  • Hent data

  • Indsæt, opdater og slet poster

  • Opret nye tabeller og visninger

  • Byg nye databaser

  • Fremstil lagrede procedurer

  • Angiv tilladelser til visninger, tabeller og procedurer.

For at fremstille et websted, der kan få adgang til data fra en database, er et RDBMS-databaseprogram nødvendigt. Nogle populære RDBMS-programmer inkluderer:

  • SQL Server

  • MS Access

  • MySQL

  • Postgre SQL

  • Oracle-database.

For at oprette en database skal databaseadministratoren også bruge følgende:

  • Et standard markup-sprog som CSS / HTML

  • Et script-sprog på serversiden, f.eks. ASP eller PHP.

  • Forstå, hvordan du bruger SQL til at hente de data, du anmoder om.

Anatomi af en database

Det relationelle databasestyringssystem (RDBMS) danner grundlaget for databasen. Brug af RDBMS giver en DBA mulighed for at gemme data i databaseobjekter, kaldet tabeller. Tabeller består af kolonner og rækker med relaterede data organiseret i sektioner.

Identificering af databasetabeller

De fleste databaser indeholder mere end en tabel, så DBA skal identificere hver tabel med et navn. Hver tabel vil indeholde rækker med poster, der indeholder information og data.

For eksempel vil en virksomhed bruge en database med en kundetabel, der indeholder følgende data for hver kunde:

  1. Kundenavn

  2. Kontakt navn

  3. Kunde ID

  4. Kundeadresse – gade, by, postnummer og land

  5. Oplysninger om kundekontakt

I dette tilfælde indeholder tabellen fem poster – en for hver kunde – og otte kolonner, en for hver del af data: Kundenavn, kontaktnavn, kunde-id, kundeadresse inkl. By, postnummer og land og kundekontaktinformation.

Kommunikation med en SQL-database

Databaseadministratorer udfører alle de nødvendige handlinger i en database ved hjælp af SQL-sætninger. Resultaterne gemmes derefter i en resultattabel, kaldet resultatsættet.

SQL er normalt ikke store og små bogstaver, og nogle databasesystemer kræver brug af semikolon i slutningen af ​​hver SQL-sætning. En semikolon er blevet standardmetoden til at adskille SQL-sætninger fra hinanden i et databasesystem.

Dette gør det muligt for en DBA at udføre flere SQL-sætninger i et opkald til serveren.

Nogle af SQL-kommandoer inkluderer:

  • ALTER TABEL Ændrer tabeller.

  • ALTER DATABASE Ændrer databaser.

  • Opret DATABASE Opretter nye databaser.

  • Opret INDEX Opretter indeks / søgetaster.

  • Opret tabel Opretter nye tabeller.

  • SLET Sletter data fra databaser.

  • DROP INDEX Sletter indekser.

  • DROP TABEL Sletter tabeller

  • INDSÆT IND Indsætter nye data i databaser.

  • VÆLG Udtrækker data fra databaser.

  • UPDATE Opdaterer data i databaser.

Codds 12 regler

Da han oprettede det første relationsdatabasestyringssystem, inkluderede Dr. Codd 13 regler, hvilket antydede, at hvis et databasestyringssystem overholder alle disse regler, er det et ægte Relationsdatabasestyringssystem.

Fordi han nummererede dem fra nul til 12, kaldes de Codds 12 regler:

  • Regel nul: fundamenter Angiver, at et grundlæggende system skal opfylde tre grundlæggende krav: Det skal være relationelt og omfatte en database og et styringssystem. Det skal også udnytte relationelle faciliteter udelukkende for at administrere databasen for at blive betragtet som en ægte RDBMS.

  • Regel 1: Informationsrepræsentation Repræsentere alle oplysninger i databasen på en enestående måde, specifikt ved at placere værdier i kolonnepositioner i rækker af tabeller.

  • Regel to: Garanteret adgang Alle data skal være tilgængelige, ligesom det grundlæggende krav til de primære nøgler. Hver individuel skalærværdi i en database skal være fornuftigt adresserbar ved at definere navnet på den indeholdende tabel og kolonne, samt den primære nøgleværdi for den indeholdende række.

  • Regel tre: Håndtering af nulværdier DBMS skal lade hvert felt forblive tomt eller nul. Dette betyder, at det er nødt til at understøtte manipulationen af ​​en repræsentation af enhver anvendelig eller manglende information på en systematisk måde, der er forskellig fra alle almindelige værdier, såvel som uafhængig af datatypen.

  • Regel fire: Aktiv online katalog Systemet skal understøtte en inline, online, relationel struktur eller katalog, der er tilgængelig for autoriserede brugere ved hjælp af deres normale forespørgselssprog. Brugere skal være i stand til at få adgang til databasens katalog ved hjælp af den samme relationelle model og forespørgselssprog, de brugte til at få adgang til dataene inde i databasen.

  • Regel Fem: Omfattende datasprog Systemet skal understøtte mindst ét ​​relationelt sprog med en lineær syntaks. Brugere skal også være i stand til at udnytte det inden for applikationsprogrammer og interaktivt. Det skal også understøtte datamanipulation, f.eks. Opdatering og hentning, og datadefinitionsoperationer, såsom visningsdefinitioner, såvel som transaktionsstyringsoperationer som begå, begynde og rollback. Det skal også have integritet og sikkerhedsbegrænsninger på plads.

  • Regel seks: Opdatering Eventuelle synspunkter, der kan opdateres teoretisk, skal opdateres af systemet.

  • Regel syv: Opdatering på højt niveau, indsæt og slet Systemet skal understøtte sæt-til-gangen-opdatering, indsætte og slette operatører, så brugerne kan hente data fra en relationel database i sæt, der er konstrueret af data fra flere tabeller og / eller rækker. Opdater, indsæt og slet operationer skal være aktiveret for ethvert hentbart sæt i stedet for for en enkelt række i en enkelt tabel.

  • Regel Otte: Uafhængighed af fysiske data Opdateringer til det fysiske niveau skal ikke kræve en opdatering til en applikation baseret på strukturen. For eksempel ændringer i, hvordan dataene gemmes, som om de skal placeres i arrays eller sammenkædede lister.

  • Regel Ni: Logiske datauafhængighed Opdateringer til det logiske niveau, såsom kolonner, tabeller og rækker, skal ikke kræve en opdatering til et program baseret på strukturen. Det er sværere at opnå logisk datauafhængighed end fysisk datauafhængighed.

  • Regel 10: Integritetsuafhængighed Specificer integritetsbegrænsninger skal gemmes separat fra applikationsprogrammer og i kataloget. Det skal være muligt at opdatere sådanne begrænsninger, når det er relevant, uden at det påvirker nogen aktuelt eksisterende applikationer.

  • Regel 11: Distribution Uafhængighed Distributionen af ​​dele af databasen til forskellige placeringer bør ikke være synlig for databasebrugere. Alle eksisterende applikationer skal kunne fungere kontinuerligt og effektivt i lyset af en introduktion af en distribueret version af DBMS, eller når nuværende distribuerede data omdistribueres i hele systemet.

  • Regel 12: Ikke undergravning Hvis systemet leverer en en-post-ad-en-tid eller lavt niveau interface, kan det ikke udnyttes til at mindske et andet system. Et eksempel på dette ville være handlen om at omgå en relationel integritet eller sikkerhedsbegrænsning.

Structured Query Language eller SQL er nået langt, men de fundamenter, der bruges til at skabe det, står stadig stærkt. Databaseadministratorer kan opdage flere måder og steder at bruge det, da cloud computing bliver normen; ANSI vil dog forblive på plads for at specificere standarder for at forene sprog for databaseforespørgsler.

Ressourcer:

ANSI.org

Historie om SQL

W3Resource

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map