|
| SQL:1999 ejendommeligheder Fra : Troels Arvin |
Dato : 29-03-03 14:00 |
|
Hej,
I forb. med et databasekursus på mit studium sidder jeg og prøver at
finde ud af, hvad Core SQL:1999 egentlig dækker over.
Ifølge [1] kræver Core-compliance bl.a., at Embedded Ada og Embedded
MUMPS (hvad det end er) er implementeret(?) - mens noget så
(tilsyneladende) basalt som den boolske datatype (BOOLEAN) er henvist til
valgfri status.
Er der nogen, der kender baggrunden for denne himmelråbende skøre
situation?
I øvrigt undrer det mig, at ISO/IEC 9075:1999 tilsyneladende ikke rigtig
findes på noget bibliotek. Jeg prøvet handelshøjskolens bibliotek og
biblioteksvagten på DEF[2]. Er der nogen, der har _set_ ISO/IEC 9075:1999
på et offentligt tilgængeligt sted? (Jeg har ikke umiddelbart lyst til
at købe ISO's PDFer.)
Referencer:
1)
Jim Melton, Alan R. Simon:
"SQL:1999 : understanding relational language components", ISBN 1558604561
2)
Danmarks Elektroniske Forskningsbibliotek, http://deff.dk/
--
Troels Arvin
| |
Poul-Erik Andreasen (24-04-2003)
| Kommentar Fra : Poul-Erik Andreasen |
Dato : 24-04-03 18:11 |
|
On Sat, 29 Mar 2003 13:59:43 +0100
"Troels Arvin" <troels@arvin.dk> wrote:
> Hej,
>
> I forb. med et databasekursus på mit studium sidder jeg og prøver at
> finde ud af, hvad Core SQL:1999 egentlig dækker over.
>
> Ifølge [1] kræver Core-compliance bl.a., at Embedded Ada og Embedded
> MUMPS (hvad det end er) er implementeret(?) - mens noget så
> (tilsyneladende) basalt som den boolske datatype (BOOLEAN) er henvist til
> valgfri status.
Jeg kender ikke grunden men det undrer mig at du sammenstiller de to ting.
Det første har har vel noget at gøre med hvem der har lobbyet. For Ada's vedkommende
kunne jeg forestille mig at DOD har haft en finger med i spillet.
MUMS kender jeg heller ikke.
Hvad boolean angår kan det skyldes at det kan betragtes som speciel datatype frem for en
basal. Man kan betragte det som en enummereret integer subtype med værdierne(false,true)(0,1).
At den er meget anvendelig er så noget andet.
--
Poul-Erik Andreasen
| |
Troels Arvin (25-04-2003)
| Kommentar Fra : Troels Arvin |
Dato : 25-04-03 07:07 |
|
On Thu, 24 Apr 2003 19:10:32 +0200, Poul-Erik Andreasen wrote:
> Hvad boolean angår kan det skyldes at det kan betragtes som speciel
> datatype
Jeg stillede også mit spørgsmål i comp.databases.theory gruppen, og
dér resulterede det i en alen-lang tråd. Nogle henviste til, at Date
nævner den boolske type som den eneste type, et ideelt relationelt
databasesystem _skal_ understøtte, hvorfor det er bizart, at SQL ikke
inkluderer typen som del af "core" kravene.
Andre hævdede, at et boolsk felt ofte er tegn på, at éns implementation
er problematisk: Hvis man fx. har en "shipped" attribut, vil det ofte
være smartere fx. at benytte date-typen: Her får man ud over status
også en dato for, hvornår afskibningen skete. Andre gange burde den
boolske værdi kunne udregnes ud fra andre data og derfor være redundant.
Hovedproblemet med BOOLEAN datatypen i SQL (og baggrunden for, at man ikke
har kunnet kræve den som del af core) synes dog at være et skænderi om,
hvorvidt den boolske type skal kunne antage to, tre eller fire værdier:
sand, falsk
sand, falsk, NULL
sand, falsk, NULL, uvist
Én debattør hævdede, at trevejslogik er noget mega-bøvl, og at logik
bør udføres på typer, hvis mulige værdier er et multiplum af to. Jeg
er ikke matematisk nok til at vurdere dette.
Personligt forstår jeg ikke, hvorfor der skal skelnes mellem NULL og
"uvist" (SQL:1999 siger, at det er implementationsafhængigt, om der
skelnes mellem NULL og "uvist", hvis BOOLEAN er implementeret).
/Troels
| |
|
|