Prednosti i nedostaci SQL jezika. Poteškoće u radu s hijerarhijskim strukturama

Neovisnost o određenom DBMS-u

Unatoč prisutnosti dijalekata i razlika u sintaksi, većinom se tekstovi SQL upita koji sadrže DDL i DML mogu vrlo lako prenijeti iz jednog DBMS-a u drugi. Postoje sustavi čiji su se programeri u početku fokusirali na korištenje barem nekoliko DBMS-ova. Naravno, kada se koriste neke mogućnosti specifične za implementaciju, takvu prenosivost je već vrlo teško postići.

Dostupnost standarda

Posjedovanje standarda i niza testova za određivanje je li određena implementacija SQL-a kompatibilna i usklađena s općeprihvaćenim standardom samo pomaže "stabilizirati" jezik. Međutim, vrijedi napomenuti da je sam standard na nekim mjestima previše formaliziran i napuhan.

Deklarativnost

S koristeći SQL programer opisuje samo podatke koje treba ekstrahirati ili modificirati. Kako to učiniti odlučuje DBMS izravno prilikom obrade SQL upita. Međutim, ne treba misliti da je ovo potpuno univerzalno načelo - programer opisuje skup podataka koje treba dohvatiti ili modificirati, ali mu je korisno zamisliti kako će DBMS analizirati tekst njegovog upita. Što je upit složeniji, dopušta više mogućnosti pisanja, različite u brzini izvršenja, ali identične u smislu konačnog skupa podataka.

Mane

Neusklađenost modela relacijskih podataka

Kreatori relacijski model podaci Edgar Codd, Christopher Date i njihovi pristaše ističu da SQL nije istinit relacijski jezik. Konkretno, oni ukazuju na sljedeće SQL probleme:

  • Redovi koji se ponavljaju
  • Nedefinirane vrijednosti
  • Eksplicitno određivanje redoslijeda stupaca s lijeva na desno
  • Neimenovani stupci i dvostruki nazivi stupaca
  • Nedostatak podrške za svojstvo "="
  • Korištenje pokazivača
  • Visoka redundancija

Složenost

Iako je SQL bio zamišljen kao sredstvo za rad krajnji korisnik, na kraju je postao toliko složen da je postao programerski alat.

Odstupanja od standarda

Unatoč prisutnosti međunarodnog standarda ANSI SQL-92, mnoge tvrtke koje razvijaju DBMS-ove mijenjaju SQL jezik koji se koristi u DBMS-u koji se razvija, čime odstupaju od standarda. Tako se pojavljuju dijalekti specifični za svaki pojedini DBMS SQL jezik.

Poteškoće u radu s hijerarhijskim strukturama

Prethodno, SQL dijalekti većine DBMS-ova nisu nudili način za manipuliranje strukturama stabla. Neki dobavljači DBMS ponudili su svoja rješenja. ANSI je sada standardizirao rekurzivnu WITH konstrukciju iz DB2 SQL dijalekta. U M.S. SQL poslužitelj rekurzivni upiti pojavio samo u verziji MS SQL Server 2005.

Budući da imam više od desetljeća iskustva sa SQL Serverom i stavio sam cijelu svoju karijeru na uspjeh proizvoda, imam vlastito mišljenje o razlozima privlačnosti proizvoda i putu do njegovog uspona na vrh.

Praktičnost i pristupačnost. Velika prednost SQL Servera uvijek je bila njegova lakoća učenja i svladavanja, posebno u usporedbi s ostalima relacijske baze podataka podaci. Kao što sam primijetio u svojim člancima, korisnička zajednica za Microsoftove proizvode, posebno SQL Server, otvorena je i velikodušna. Posvećena osvajanju svijeta sa SQL Serverom, tvrtka nudi izvrsnu dokumentaciju, tečajeve obuke, sveobuhvatnu podršku i razne opcije trening.

Cijena. Uz njegovu nižu cijenu od mnogih njegovih konkurenata, velika prednost SQL Servera je to što se njime može lako upravljati na mnogim poslužiteljima s pravim radnim opterećenjem bez potrebe za profesionalnim DBA.

Podrška programera. Pohranjene procedure uvijek su bile vrlo korisne za SQL korisnici Poslužitelj i s podrškom za ODBC i OLEDB dostupni su na velikom broju platformi. Osim toga, uspjeh i široka primjena uvelike je posljedica izvrsne interoperabilnosti između SQL Servera i . NETO.

Poslovna analitika. Još jedna prednost koja pokreće usvajanje SQL Servera su napori tvrtke da proširi dostupnost poslovne inteligencije (BI). Ovo je problem zanemaren za mnoge programere, ali nema sumnje da su prednosti pristupa snažnom OLTP stroju, OLAP-u i mogućnostima skladištenja podataka, pa čak i ETL-u (SSIS) i alatima za izvješćivanje (SSRS) s jednom licencom za SQL Server su: ključni element Uspjeh SQL Servera.

Novo lice SQL Servera

Nedavno objavljene verzije SQL Servera jasan su dokaz da Microsoft nastavlja s naporima da doda nove značajke poslovne inteligencije (iako postoje pritužbe na nedostatke alata i izvješćivanja). Isto tako, vjerujem da upotrebljivost i pristupačnost SQL Servera nikada nije bila na ovoj razini zahvaljujući SQLSaturday, #SQLHelp Twitter hashtag, mnoštvu SQL Server blogova, besplatnim tečajevi obuke i mnoge druge prednosti.

Posljednji veliki razvoj usmjeren na programere bilo je uvođenje CLR-a u SQL Server 2005. Ostala poboljšanja bila su manja i inkrementalna, ništa radikalno. Ne uzimam u obzir nove značajke kao što je RCSI, pa čak ni podršku za Hekaton planiranu u SQL Serveru 2014. Ovo dobre karakteristike, korisno za programere, ali samo u smislu povećanja propusnost i skalabilnost.

Konačno, važna točka cijene su postale Nema govora o prelasku SQL Servera 2012 s licenciranja procesora na licenciranje jezgre. Po mom mišljenju, ova odluka je potpuno pravedna i prihvatljiva, budući da su procesori sada mnogo snažniji nego prije, a licence za SQL Server su se uvijek davale po principu “plaćaš ono što koristiš”. Još jedno pitanje koje me više brine je to što se čini da uvjeti licenciranja za SQL Server 2008 R2 i novija izdanja pokušavaju zaključati korisnike u proizvod i prisiliti ih na nadogradnju. Ovaj pristup protivi se poštenom licenciranju koje je pomoglo SQL Serveru da postane vodeći na tržištu. Konkretno, mislim na činjenicu da u SQL Serveru 2008 R2 i novijim verzijama radna opterećenja Standardno izdanje umjetno ograničen na 64 GB OVAN. S DDR4 na horizontu, besmislenost ovog ograničenja postat će očigledna kada, za nekoliko godina, pri kraju životni ciklus SQL Server 2014 počet će se pojavljivati ​​u prodaji DIMM moduli s kapacitetom od 64 GB.

PostgreSQL: izgledi za programera

Zahvaljujući SQL Serveru, otplaćivao sam hipoteku deset godina. Nije mi ni palo na pamet da ću ikada razmišljati o prevari. Ali nedavne neobičnosti s licenciranjem standardnog izdanja i nedostatak pozornosti programera prema novijim verzijama SQL Servera poljuljali su moje samopouzdanje.

S jedne strane, ne prođe tjedan dana a da me ne zbuni nekompatibilnost SQL Servera s JSON-om. SQL poslužitelj? XML? XML jezik okretala glave 1999., ali danas je njegovo nekadašnje značenje beznadno izgubljeno. S druge strane, potpuno besplatan proizvod PostgreSQL nije samo JSON kompatibilan, on također nudi indeksiranje JSON podaci. A ovo je samo vrh ledenog brijega - PostgreSQL ima mnogo vrlo moćnih značajki koje će se svidjeti programerima. Neće proći dugo prije nego što ću bolje upoznati PostgreSQL, pogotovo zato što neće biti teško implementirati proizvod.

Ne, još nisam spreman promijeniti proizvod, ali čini se da će programeri SQL Servera počivati ​​na lovorikama. PostgreSQL nije bez nedostataka, ali je postao puno bolji u posljednjih nekoliko godina. To je proizvod bogat značajkama, izuzetno pogodan za programere i definitivno usmjeren na povećanje tržišnog udjela. Mogu se samo nadati da će SQL Server dobiti novi zamah i ponovno steći priznanje i podršku programera. Nedopustivo je zaboraviti što su kreatori proizvoda napravili na putu do uspjeha.

Trenutno postoji dosta različitih poslužiteljski DBMS– ovo je MS SQL Server, Oracle, IBM DB2, Interbase, MySQL itd. Ali raširena i praktična primjena za velikih sustava dobila 3 sustava - MS SQL, Oracle i IBM DB2.

Da biste odabrali DBMS, usporedite ih prema sljedeće parametre: izvedba, cijena, dostupnost, jednostavnost korištenja, mogućnosti. Prilikom odabira DBMS-a koristili smo se podacima s web stranica www.tpc.org i www.sql.ru.

TPC testni podaci i usporedbe cijena poslužitelja objavljeni su na web stranici www.tpc.org. Prema ovoj stranici, prvo mjesto po performansama, koje se definiraju kao broj obavljenih poslovnih transakcija u minuti, zauzima MS SQL Server 2000 s tpmC=505302, a slijedi ga IBM DB2 UDB 7.1 s tpmC=440879. Oracle DBMS 8i Enterprise Edition v. 8.1.7 zauzima tek peto mjesto (tpmC=220807). Osim toga, MS SQL Server 2000 je vodeći u smislu cijene sustava po transakciji. Cijena sustava po transakciji za sustav MS SQL Server 2000 je oko 20 USD, što je 1,5 puta niže nego za DB2 sustav i 2 puta niže nego za Oracle.

Međutim, treba napomenuti da testovi ove vrste ne mogu dati jednoznačan odgovor na pitanje koji će DBMS biti produktivniji pri rješavanju konkretan zadatak: U nekim slučajevima izvedba Oracle DBMS-a premašuje izvedbu SQL Servera, au drugim obrnuto. To se stvarno može provjeriti samo testiranjem na temelju upita koji su tipični za određeni zadatak.

Web stranica www.sql.ru daje rezultate ankete (vidi sliku 3.3) korisnika na pitanje koji se DBMS najčešće koriste. Rezultati ove ankete ponovno idu u prilog MS SQL Serveru - više od 30% svih sudionika glasanja dalo je prednost ovom DBMS-u u odnosu na sve ostale. Više široku upotrebu MS SQL Server će osigurati niže troškove implementacije i podrške, jer postoji velika vjerojatnost da se MS SQL Server već koristi u ovoj tvrtki.

Riža. Postotak korištenja DBMS-a

Stol. Usporedne karakteristike DBMS.

Tablica prikazuje glavne prednosti i nedostatke razmatranih DBMS-ova. Za sustav koji se razvija koristit će se MS SQL 2000 DBMS. Ovaj izbor opravdano širokom upotrebom ovog sustava, visoke performanse s niskom cijenom poslužitelja i jednostavnom podrškom sustava. Osim toga, računalo poslužitelj će pokretati operativni sustav iz Windows obitelj NT, što daje još jednu prednost MS SQL Servera 2000, jer... točno ovaj DBMS na najbolji mogući način optimiziran za Windows operativni sustav.

Izbor i obrazloženje korištenja MS-a Visual Studio i MS Visual C++ kao razvojni alati.

Zbog činjenice da danas razina složenosti softver vrlo visoka, razvoj Windows aplikacije korištenje samo programskog jezika (na primjer, C) mnogo je teže. Programer mora potrošiti puno vremena na rješavanje standardni zadaci o stvaranju sučelja s više prozora. Implementacija tehnologije za povezivanje i ugradnju objekata - OLE - zahtijevat će od programera još složeniji rad.

Moderni integrirani alati za razvoj Windows aplikacija omogućuju vam automatizaciju procesa izrade aplikacije. Za to se koriste generatori aplikacija. Programer odgovara na pitanja generatora aplikacija i utvrđuje svojstva aplikacije - podržava li način rada s više prozora, OLE tehnologija, trodimenzionalne kontrole, sustav pomoći. Generator aplikacija će kreirati aplikaciju koja zadovoljava zahtjeve i pružiti izvorni tekstovi. Koristeći ga kao predložak, programer može brzo razviti svoje aplikacije.

Danas postoji širok izbor i obilje razvojnih alata. Pogledajmo glavne prednosti i nedostatke tri od njih: Delphi, C++ Builder i MS Visual C++/Visual Studio.

Delphi je moćan i univerzalni lijek razvoj aplikacija. Njegova RAD ljuska smatra se jednom od najboljih. To se, zajedno s VCL bibliotekom, na kojoj je ljuska zasnovana i napisana, može nazvati istinski revolucionarnom. Delphi osigurava programera dovoljno mogućnosti na razvoj GUI aplikacije (GUI). Optimalno je prikladan za male projekte, kada je brzina razvoja prioritet. Delphi je vrlo popularan u našoj zemlji, ali u inozemstvu njegova popularnost je znatno manja, i kada se implementira glavni projekti prednost se daje C++.

Prednosti:

………………………

Mane

………………………

C++ Builder

Svojevrsni “hibrid” Delphija i C++-a, o čemu svjedoči činjenica da C++ Builder koristi istu VCL biblioteku kao i Delphi, a napisan je u Delphiju. U svjetlu ovoga, kompatibilnost C++ Buildera s Delphijem na razini komponente i izvornog koda čini se logičnom.

Prednosti:

…………………..

Mane:

……………………

MS Visual C++

Microsoft proizvod Visual C++ .NET – moćan alat razvoj koji vam omogućuje stvaranje programa na temelju Microsoft Windows, uz podršku Microsoftove tehnologije.NET, dinamičke web aplikacije i XML web usluge koje koriste C++ programski jezik. MFC biblioteka klasa uključena u Visual C++ čini mnogo lakšim stvaranje grafičkog sučelja za aplikacije. Međutim, VC++ programeri zahtijevaju mnogo veće kvalifikacije nego Delphi programeri, jer... MFC je, usprkos svoj svojoj “moći”, samo tanki “omot” nad WinApi-jem, pa se pri pisanju aplikacija puno toga mora raditi ručno. S jedne strane, ovo je minus, jer... Brzina razvoja je znatno smanjena. S druge strane, to daje veću mogućnost i fleksibilnost pri provedbi velikih projekata te im omogućuje postizanje maksimalne produktivnosti.

Prednosti:

…………………………

Mane:

Pristup

Baza podataka u Access formatu je datoteka za sve korisnike sustava. Ova datoteka sprema sve podatke jedne tvrtke i dostupna je svim radnim stanicama. Kroz dijeljenu mapu i mapirani disk svaki radno mjesto otvara istu datoteku koja se nalazi na središnjem računalu.

Pogodno za: Mali objekti s malim opterećenjem, s 1 ili 2 posla.
Performanse: Microinvest Warehouse Pro odlično radi s do 200.000 zapisa baze podataka. To predstavlja 40 000 dokumenata sa po 5 pozicija.
Sigurnost: Jer Budući da se baza podataka sprema u jednu datoteku, koja je dostupna svim radnim stanicama, sigurnost podataka nije visoka. Gotovo svako radno mjesto ima izravan pristup bazi podataka i može je oštetiti.
Jednostavan za instalaciju: Ova vrsta baze podataka ne zahtijeva središnji poslužitelj. Dovoljno je imati jedno računalo koje sprema datoteku s bazom i da sva ostala računala imaju pristup toj datoteci putem mreže.
Mrežna veza: Za rad na mreži dovoljno je definirati jednu mapu koja je dostupna svim računalima te odrediti mjesto za datoteku u njoj. Ova se datoteka otvara zasebno sa svakog računala.
Ostale karakteristike: Microinvest Skladište Pro radi s Access bazom podataka bez potrebe za kupnjom i Instalacijama pristupa na računalo. Sve je ugrađeno u sam program potrebne module upravljanje bazom podataka u Access formatu. Baza podataka je besplatna.

MSDE (Microsoft Desktop Engine)

MSDE je malen i okretan SQL poslužitelj sposoban pružiti izvrsnu brzinu u mrežama do 5 radnih stanica. MSDE je instaliran na središnji poslužitelj ili na jednu od radnih stanica, a sva ostala računala komuniciraju s ovim poslužiteljem. Prednost je izvrsna izvedba i puna upotreba računalni resursi.

Pogodno za: Mali objekti velikog opterećenja, do 5 poslova.
Performanse: Microinvest Skladište Pro odlično radi s bazom podataka do 2 GB. Riječ je o više od 1.000.000 dokumenata.
Sigurnost: MSDE je potpuni SQL poslužitelj koji se brine za upravljanje bazom podataka, njezinu sigurnost i stabilnost tijekom rada. Najviše pruža MSDE visoka razina zaštitu podataka i ne stvara gotovo nikakve probleme.
Jednostavan za instalaciju: Microinvest nudi jednu MSDE instalacijsku datoteku koja instalira sve potrebne komponente, bez ikakvih dodatne postavke. Zbog tehnoloških ograničenja u MSDE-u, ovaj se poslužitelj ne može instalirati na Windows Vista, Windows 7, Windows 8 ili Windows 10.
Mrežna veza: Port 1433 u Firewall mreži otvoren je za sva računala na mreži. Komunikacija između odvojena računala vrši se ispunjavanjem IP adrese poslužitelja (za to određenog računala s instaliranim MSDE-om), korisničkog imena (obično sa), komunikacijske lozinke i naziva baze podataka.
Ostale karakteristike: MSDE je besplatni server, koji ima niske zahtjeve za računalne parametre i podržava sve potrebne sustave zaštita podataka i iznimno brz. Potpune upute Vodič za instalaciju MSDE nalazi se na instalacijski disk Microinvest.

MySQL

MySQL je moćan i besplatan SQL poslužitelj koji može pružiti odličan posao u mrežama s više od 5 radnih mjesta. MySQL je instaliran na centralnom poslužitelju ili na jednoj od radnih stanica, a sva ostala računala povezana su na ovaj poslužitelj. Prednost je snaga poslužitelja, funkcije za rad preko interneta i mogućnost instaliranja MySQL-a operativni sustav Linux.

Pogodno za: Mali objekti velikog opterećenja, neograničeni broj poslova. Za objekte do 5 radnih mjesta preporučljivo je koristiti MSDE jer MSDE je brži od MySQL-a. Ako je broj radnih stanica veći od 5, poželjno je instalirati MySQL.
Performanse: Poslužitelj nema ograničenja u veličini baze podataka i može izdržati gotovo neograničeno opterećenje.
Sigurnost: MySQL je potpuni SQL poslužitelj koji se brine za upravljanje bazom podataka, sigurnost i stabilan rad. MySQL pruža najvišu razinu zaštite podataka i obrade transakcija. MySQL je vrlo osjetljiv na nestanak struje, pa se za stroj na kojem je instaliran poslužitelj mora osigurati UPS.
Jednostavan za instalaciju: Microinvest nudi dva instalacijsku datoteku MySQL (datoteka s poslužiteljem i datoteka s alatima za upravljanje poslužiteljem). MySQL radi sa svima Windows verzije. Instalacijski disk sadrži detaljne upute za instaliranje ovog poslužitelja. Prilikom instalacije važno je odabrati UTF-8 kodiranje kako biste izbjegli probleme s ćirilicom.
Mrežna veza: Port 3306 otvara se u vatrozidu za sva računala na mreži. Komunikacija između pojedinačnih računala odvija se popunjavanjem IP adrese poslužitelja (za to dodijeljeno računalo, s MySQL instaliran), korisničko ime (obično root), komunikacijsku lozinku i naziv baze podataka.
Ostale karakteristike: MySQL je besplatni SQL poslužitelj koji ima ogromne mogućnosti za rad s visokim stupnjem opterećenja. Potpune upute za MySQL instalacija nalazi se na instalacijskom disku Microinvesta.

MS SQL (Microsoft SQL Server)

MS SQL je generički naziv za Microsoft SQL Server 2005/2008/2012/2014/2016 Express Edition. Ovo je izvrstan poslužitelj s izvrsnim značajkama, velika brzina I maksimalnu sigurnost. MS SQL je instaliran na centralnom serveru i sva ostala računala su povezana na ovaj server.

Pogodno za: Srednji i veliki objekti s velikim opterećenjem.
Performanse: Microinvest Skladište Pro radi savršeno pod bilo kojim opterećenjem. Gotovo da nema ograničenja u količini podataka i brzini sustava.
Sigurnost: MS SQL je SQL poslužitelj visoka klasa, koja brine o upravljanju bazom podataka, njezinoj sigurnosti i stabilnosti. MS SQL jamči najvišu razinu zaštite podataka i ne stvara gotovo nikakve probleme. Ovaj sustav je od korporativne važnosti i može ga koristiti svaki klijent.
Jednostavan za instalaciju: Microinvest nudi dva instalacijsku datoteku MS SQL (x86 i x64). MS SQL radi sa svim verzijama Windowsa. Instalacijski disk sadrži detaljne upute za instaliranje ovog poslužitelja.
Mrežna veza: Port 1433 u Firewall mreži otvoren je za sva računala na mreži. Komunikacija između pojedinih računala odvija se popunjavanjem IP adrese poslužitelja (za tu namjenu dodijeljeno računalo s instaliranim SQL Serverom), korisničkog imena (obično sa), komunikacijske lozinke i naziva baze podataka.
Ostale karakteristike: Microsoft SQL Server 2005/2008/2012/20014 Express Edition je besplatni poslužitelj koji ima visoku izvedbene karakteristike. Potpune upute za SQL instalacija Server se nalazi na Microinvest instalacijskom disku. Važno je napomenuti da je poslužitelj koji se nalazi na disku besplatan za korištenje.

Neki korisni resursi

  • Dokumentacija za sve proizvode;
  • Microinvest forum tehničke podrške, gdje možete brzo dobiti odgovor na svoje pitanje;
  • Primjeri automatizacije restorana i trgovine na temelju Microinvesta u Rusiji i zemljama ZND-a;
  • Raspored nadolazećih treninga u Rusiji i zemljama ZND-a;