Relational algebra, relational algebra operations. Mga Pundamental ng Relational Algebra

Ang relational algebra ay isang wika ng mga operasyong isinagawa sa mga relasyon - mga talahanayan ng isang relational database. Ang mga operasyon ng relational algebra ay nagbibigay-daan sa iyo na lumikha ng isa pang kaugnayan batay sa isa o higit pang mga relasyon nang hindi binabago ang orihinal na mga relasyon sa kanilang sarili. Ang nagreresultang iba pang kaugnayan ay karaniwang hindi nakasulat sa database, ngunit umiiral bilang resulta ng SQL query - isang array na nilikha ng mga function para sa pagtatrabaho sa mga database sa mga programming language. Para sa bawat relational algebra operation, ang pagpapatupad nito ay ibibigay sa anyo ng mga query sa wikang SQL.

Isaalang-alang natin ang mga operasyon ng relational algebra. Upang hindi ka magambala sa mga nilalaman ng mga talahanayan na hindi mo mga database, tulad ng "Mga Produkto", "Mga Driver", "plum", "peras", "tsaa", "kape", Vladimir, Sergei, atbp. Magsasagawa kami ng mga operasyon sa mga relasyon (mga talahanayan) na may abstract na data, tulad ng R1, R2 (mga pangalan ng mga talahanayan - mga relasyon), atbp. at A1, A2, A3 (mga pangalan ng mga katangian - mga haligi) at h15, w11, atbp. (mga nilalaman ng mga talaan ng talahanayan ng database).

Mga priyoridad para sa pagsasagawa ng mga pagpapatakbo ng relational algebra (sa pababang pagkakasunud-sunod ng mga item sa listahan, at sa isang item - mga pagpapatakbo na may pantay na priyoridad):

  • pagpili, projection
  • Produktong Cartesian, koneksyon, intersection, dibisyon
  • unyon, pagkakaiba.

Sampling operation

Ang piling operasyon ay gumagana sa isang kaugnayan at tinutukoy ang resultang kaugnayan R, na naglalaman lamang ng mga tuple (o mga hilera, o mga tala), mga ugnayang tumutugon sa isang partikular na kundisyon (predicate P ).

Kaya, ang operasyon ng pagkuha ay isang unary na operasyon at nakasulat bilang sumusunod:

saan P- panaguri (lohikal na kondisyon).

SQL Query

Ngayon tingnan natin kung ano ang mangyayari kapag pinatakbo natin itong relational algebra operation at ang katumbas nitong SQL query. Ang talahanayan sa ibaba ay nagpapakita ng isang kaugnayan kung saan gumagana ang operasyong ito.

R3
A1A2A3A4
3 hhylMS
4 ppa1sr
1 rrylMS

Tinitingnan namin ang column A3 at itinatag na ang predicate A3>"d0" ay nasiyahan sa pamamagitan ng mga entry sa una at ikatlong hanay ng orihinal na kaugnayan (dahil ang bilang ng letrang y sa alpabeto ay mas malaki kaysa sa bilang ng letrang d ). Bilang resulta, nakukuha namin ang sumusunod na bagong kaugnayan, na naglalaman ng dalawang linya:

R
A1A2A3A4
3 hhylMS
1 rrylMS

Tutulungan ka ng materyal na ito na pagsamahin ang lahat ng uri ng mga lohikal na kondisyon para sa mga seleksyon. "Boolean algebra (algebra ng lohika)" .

SQL Query

SELECT A1, A2, A3 from R1 UNION SELECT A1, A2, A3 from R2

Ngayon tingnan natin kung ano ang mangyayari kapag pinatakbo natin itong relational algebra operation at ang katumbas nitong SQL query. Ngayon, dalawang relasyon ang ibinigay, dahil ang operasyon ng unyon ay isang binary na operasyon:

R1 R2
A1A2A3A1A2A3
Z7aaw11X8ppk21
B7hhh15Q2eeh15
X8ppw11X8ppw11

Pinagsasama namin ang mga linya ng una at pangalawang ugnayan at nakikita na ang ikatlong linya, na siyang pangatlo sa una at pangalawang ugnayan, ay magkapareho, kaya't isasama namin ito sa bagong ugnayan nang isang beses lamang. Nakukuha namin ang sumusunod na kaugnayan:

R
A1A2A3
Z7aaw11
B7hhh15
X8ppw11
X8ppk21
Q2eeh15

Ang sumusunod ay mahalaga: ang isang joint operation ay maaari lamang gawin kapag ang dalawang relasyon ay may parehong bilang at mga pangalan ng mga katangian (columns), o, pormal na pagsasalita, ay magkatugma.

Operasyon ng intersection

Ang resulta ng intersection ng dalawang set (relasyon) A at B () ay magiging set (relasyon) C na kinabibilangan ng mga at tanging mga elementong nasa parehong set A at set B. Ang operasyon ng intersection ng relational algebra ay magkapareho sa operasyon.

SQL Query

PUMILI A1, A2, A3 mula sa R1 INTERSECT SELECT A1, A2, A3 mula sa R2

Ang ilang mga SQL dialect ay walang INTERSECT na keyword. Ang kapalit nito, halimbawa, sa MySQL at iba pa, ay INNER JOIN. Paano gumagana ang operator ng SQL JOIN sa pangkalahatan at ang mga uri nito INNER JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN at FULL OUTER JOIN - sa aralin SQL JOIN - pagsali sa mga talahanayan ng database .

MySQL Query

Ngayon tingnan natin kung ano ang mangyayari kapag pinatakbo natin itong relational algebra operation at ang katumbas nitong SQL query. Muli, dalawang relasyon R1 at R2 ang ibinigay:

R1 R2
A1A2A3A1A2A3
Z7aaw11X8ppk21
B7hhh15Q2eeh15
X8ppw11X8ppw11

Tinitingnan namin ang lahat ng mga tala sa dalawang relasyon, at nalaman na sa una at pangalawang relasyon ay mayroong isang hilera - ang isa na pangatlo sa pareho sa una at pangalawang relasyon. Nakakuha kami ng bagong relasyon:

R
A1A2A3
X8ppw11

Pagkakaiba ng operasyon

Ang pagkakaiba ng dalawang ugnayang R1 at R2 () ay binubuo ng mga tuple (o mga talaan, o mga hilera) na nasa relasyong R1, ngunit hindi sa kaugnayang R2. Ang mga relasyong R1 at R2 ay dapat magkatugma. Ang relational algebra difference operation ay magkapareho sa operasyon.

SQL Query

PUMILI A1, A2, A3 mula sa R2 MALIBAN
PUMILI A1, A2, A3 mula sa R1

Itatag natin kung ano ang mangyayari bilang resulta ng pagsasagawa nitong relational algebra operation at ang kaukulang SQL query. Muli, dalawang relasyon R1 at R2 ang ibinigay:

R1 R2
A1A2A3A1A2A3
Z7aaw11X8ppk21
B7hhh15Q2eeh15
X8ppw11X8ppw11

Mula sa ugnayang R2 ibinubukod namin ang hilera na mayroon din sa kaugnayang R2 - ang pangatlo - at nakakuha kami ng bagong kaugnayan:

R
A1A2A3
X8ppw11
Q2eeh15

Pagpapatakbo ng produkto ng Cartesian

Ang operator ng produkto ng Cartesian () ay tumutukoy sa isang bagong ugnayang R, na resulta ng pagsasama-sama ng bawat tuple ng ugnayang R1 sa bawat tuple ng ugnayang R2.

SQL Query

PUMILI * mula sa R3, R4

Itatag natin kung ano ang mangyayari bilang resulta ng pagsasagawa nitong relational algebra operation at ng kaukulang query sa SQL. Dahil sa dalawang ugnayang R3 at R4:

R3 R4
A1A2A3A4A5A6
3 hhylMS3 hh
4 ppa1sr4 pp
1 rrylMS

Ang bagong relasyon ay dapat maglaman ng lahat ng mga katangian (mga haligi) ng dalawang relasyon. Una, ang unang hilera ng relasyong R3 ay pinagsama-sama sa bawat isa sa dalawang hanay ng kaugnayan R4, pagkatapos ay ang pangalawang hilera ng kaugnayan R3, pagkatapos ay ang pangatlo. Ang resulta ay dapat na 3 X 2 = 6 tuples (rows). Nakuha namin ang bagong relasyon na ito:

R
A1A2A3A4A5A6
3 hhylMS3 hh
3 hhylMS4 pp
4 ppa1sr3 hh
4 ppa1sr4 pp
1 rrylMS3 hh
1 rrylMS4 pp
Idagdag - gumawa ng rekord sa database at, depende sa mode ng pagsasama, isama ito sa isang relasyon ng grupo, kung saan ito ay idineklara na subordinate, o hindi isama ito sa anumang relasyon ng grupo.
Isama sa ugnayan ng grupo - I-link ang isang umiiral na subordinate na tala sa talaan ng may-ari.
Lumipat - i-link ang isang kasalukuyang subordinate na tala sa isa pang may-ari na talaan sa parehong ugnayan ng grupo.
Update - baguhin ang halaga ng mga elemento ng isang naunang nakuhang tala.
I-extract - kunin ang mga tala nang sunud-sunod sa pamamagitan ng pangunahing halaga, pati na rin ang paggamit ng mga ugnayan ng grupo - maaari kang pumunta mula sa may-ari hanggang sa mga rekord ng miyembro, at mula sa isang subordinate na talaan sa may-ari ng set.
Tanggalin - alisin ang isang talaan mula sa database. Kung ang rekord na ito ang may-ari ng isang ugnayang panggrupo, ang klase ng pagiging miyembro ng mga subordinate na talaan ay susuriin. Ang mga mandatoryong miyembro ay dapat munang ibukod sa relasyon ng grupo, ang mga nakapirming miyembro ay dapat tanggalin kasama ang may-ari, ang mga opsyonal na miyembro ay mananatili sa database.
Ibukod mula sa relasyon ng grupo - sirain ang koneksyon sa pagitan ng rekord ng may-ari at ng rekord ng miyembro.

Relational database model

Una, ang lahat ng data sa modelo ay ipinakita lamang sa anyo ng mga talahanayan at mga relasyon sa pagitan nila. Ang relational na modelo ay ang tanging nagsisiguro ng pagkakapareho ng presentasyon ng data.

Pangalawang elemento Ang mga modelo ay isang ugnayang kumpletong wika. pagkakumpleto wika kapag inilapat sa relational na modelo ay nangangahulugan na dapat itong gumanap ng anuman pagpapatakbo ng relational algebra. Bukod dito, dapat ilarawan ng wika ang anuman kahilingan sa anyo ng mga operasyon sa mga talahanayan, sa halip na sa kanilang mga hilera. Ang isa sa mga wikang ito ay SQL.

Ikatlong elemento Relational model ay nangangailangan ng relational model upang mapanatili ang tiyak mga hadlang sa integridad. Ang bawat hilera sa talahanayan ay dapat na may kakaiba identifier, na tinatawag na pangunahing susi. Ang pangalawang limitasyon ay ipinapataw sa integridad mga link sa pagitan ng mga talahanayan.

Object-oriented na modelo.

Sa mga database na nakatuon sa object, hindi tulad ng mga relational, hindi mga tala ang nakaimbak, ngunit mga bagay (teksto, impormasyon ng audio at video, mga dokumento at iba pang mga bagay). Mahalaga rin ang gawain ng pag-save ng estado ng mga bagay sa pagitan ng paulit-ulit na pagtakbo ng application program. Gayunpaman, isang binuo mathematical apparatus kung saan ang pangkalahatan object-oriented na modelo ng data, ay wala.

Karamihan sa mga OODBMS ay isang aklatan na ang mga pamamaraan sa pamamahala ng data ay kasama sa programa ng aplikasyon. Sa kabila ng mga pakinabang ng object-oriented system - pagpapatupad kumplikadong mga uri ng data, koneksyon may mga programming language, atbp. - sa malapit na hinaharap, ang superiority ng relational DBMS garantisadong.

DBMS na may kaugnayan sa object

Pagkakaiba sa pagitan ng object-relational at object-based DBMS: ang una ay isang superstructure sa relational schema, habang ang huli ay sa una ay object-oriented. Ang pangunahing tampok at pagkakaiba sa pagitan ng object-relational (pati na rin ang object) DBMS from relational is that OR DBMS isinama sa isang Object Oriented (OO) programming language, panloob o panlabas tulad ng C++, Java.

Object-relational DBMS ay, halimbawa, ang mga kilalang-kilala Oracle Database,Microsoft SQL Server, PostgreSQL, Microsoft Access.

Relational na diskarte sa pagbuo ng isang domain model.

· ang lugar ng paksa ay namodelo ng isang hanay ng mga indibidwal na bagay ng impormasyon (mga entidad), na ang bawat isa ay inilalarawan ng sarili nitong dalawang-dimensional na talahanayan;

· may mga koneksyon sa pagitan ng mga talahanayan;

· bawat elemento ng talahanayan ay isang elemento ng data;

· lahat ng column sa table ay homogenous, i.e. lahat ng elemento sa isang column ay may parehong uri (numeric, character, atbp.) at haba;

Ang bawat column ay naglalarawan ng isang katangian ng entity;

Ang bawat hanay ay may natatanging pangalan;

· ang linya ay naglalaman ng mga halaga ng katangian para sa isang halimbawa ng entity;

· walang magkatulad na mga hilera sa talahanayan (pagkakaroon ng pangunahing key);

· Ang pagkakasunud-sunod ng mga row at column ay maaaring maging arbitrary.

Normalisasyon ng mga relasyon- isang pormal na kagamitan ng mga paghihigpit sa pagbuo ng mga relasyon (mga talahanayan), na nag-aalis ng pagdoble, tinitiyak ang pagkakapare-pareho ng mga nakaimbak sa database, at binabawasan ang mga gastos sa paggawa para sa pagpapanatili (pagpasok, pagsasaayos) ng database.

Unang normal na anyo

Ang kaugnayan (talahanayan) ay tinatawag na normalized o binawasan sa unang normal na anyo, kung ang lahat ng mga katangian nito ay simple (simula dito ay hindi mahahati).

Pag-convert ng relasyon sa una normal na anyo maaaring humantong sa pagtaas ng bilang ng mga detalye (mga patlang) ng relasyon at pagbabago sa susi.

Ang mesa ay nasa pangalawang normal na anyo, kung natutugunan nito ang mga kinakailangan ng una normal na hugis at lahat ng field nito na hindi kasama sa primary key ay konektado sa pamamagitan ng full functional dependence sa primary key, iyon ay, anumang key field natatanging kinilala ng isang kumpletong hanay pangunahing mga patlang.

· ang talahanayan ay dapat maglaman ng data tungkol sa isang uri ng bagay;

· Ang bawat talahanayan ay dapat maglaman ng isang field o ilang mga field na bumubuo ng isang natatanging identifier (o pangunahing key) para sa bawat hilera;

· lahat ng mga non-key na field ay dapat matukoy ng buong natatanging identifier ng talahanayang ito.

Pangatlong normal na anyo

Kinakailangan ikatlong normal na anyo bumababa sa pagtiyak na ang lahat ng non-key na field ay nakadepende lamang sa primary key at hindi nakadepende sa isa't isa. Sa madaling salita, kailangan mong baguhin ang halaga ng anumang non-key na field nang hindi binabago ang halaga ng anumang iba pang field sa database.

Mga uri ng koneksyon. Mga katangian ng mga relasyon

· One-to-one na relasyon(1:1) ay nangangahulugan na ang bawat tala sa isang talahanayan ay tumutugma sa higit sa isang talaan sa isa pang talahanayan.

· One-to-many na relasyon(1:M) ay nangangahulugan na para sa bawat tala sa isang talahanayan ay may katumbas na 0 o 1 o higit pang mga tala sa isa pang talahanayan.

· Many-to-one na relasyon(M:1) ay katulad ng isa-sa-maraming uri na tinalakay kanina. Ang uri ng relasyon sa pagitan ng mga bagay ay depende sa punto ng view.

· Many-to-many na relasyon(MM). nangyayari sa pagitan ng dalawang talahanayan kapag ang bawat tala sa isang talahanayan ay tumutugma sa 0 o higit pang mga tala sa kabilang talahanayan at vice versa.

Simple at compound key

Pangunahing susi maaaring binubuo ng isang field ng talahanayan na ang mga halaga ay natatangi para sa bawat tala. ganyan pangunahing susi tinatawag na simpleng susi.

Kung mesa ay walang isang natatanging larangan, pangunahing susi ay maaaring binubuo ng ilang mga patlang, ang kabuuan ng kung saan ang mga halaga ay ginagarantiyahan ang pagiging natatangi.

ganyan pangunahing susi tinawag tambalang susi

Ang lahat ng mga uri ng mga relasyon ay ipinatupad gamit ang mga pangunahing key at mga link sa kanilang mga halaga sa iba pang mga talahanayan. Ang ganitong mga link, na mga kopya ng mga pangunahing key ng iba pang mga talahanayan, ay tinatawag na mga dayuhang key.

Itinuturing na hierarchical at halimbawa ng network mga database, na naglalaman ng impormasyon tungkol sa mga dibisyon ng negosyo at mga empleyado na nagtatrabaho sa kanila, na may kaugnayan sa relational na modelo ay magkakaroon ng form:

SA ligature"marami-sa-marami" ay ipinatupad sa pamamagitan ng isang karagdagang talahanayan, sa tulong ng kung saan ito koneksyon ay mababawasan sa dalawang koneksyon tulad ng " isa-sa-marami".

Ang pagsusumite ng iyong mabuting gawa sa base ng kaalaman ay madali. Gamitin ang form sa ibaba

Ang mga mag-aaral, nagtapos na mga estudyante, mga batang siyentipiko na gumagamit ng base ng kaalaman sa kanilang pag-aaral at trabaho ay lubos na magpapasalamat sa iyo.

Na-post sa http://www.allbest.ru/

Ministri ng Edukasyon ng Russian Federation

Unibersidad ng Estado ng Penza

Faculty ng Computer Science

Department of Information and Computing Systems

Disiplina "Mga Database"

Ulat sa Lab #1

"Mga Operasyon sa Database"

Nakumpleto ni: st-ka gr. 13VE1

Yudina S.V.

Tinanggap: Ph.D., Associate Professor

Dolgova I.A.

  • 1. Layunin ng gawain
  • Mag-ehersisyo
  • 2. Pagkuha ng trabaho
  • Paglikha ng isang Database
  • Pagrehistro ng database
  • Pagkonekta sa database
  • Pagkuha ng metadata
  • Magtanggal ng database
  • Konklusyon
  • Mga aplikasyon

1. Layunin ng gawain

Alamin ang mga pagpapatakbo ng database sa pangkalahatan. Magkaroon ng mga kasanayan sa paggamit ng application na "IBExpert" upang lumikha, magtanggal, magparehistro, kumonekta, mag-extract ng metadata, mag-backup at mag-restore ng isang database ng Firebird DBMS. Matuto ng mga SQL statement para gumawa, kumonekta, at magtanggal ng database.

Mag-ehersisyo

1) Pag-aralan ang mga pagpapatakbo ng database sa pangkalahatan.

2) Magkaroon ng mga kasanayan sa paggamit ng application na "IBExpert" upang lumikha, magtanggal, magrehistro, kumonekta, mag-extract ng metadata, mag-backup at mag-restore ng isang database ng Firebird DBMS.

3) Alamin ang mga SQL statement para gumawa, kumonekta at magtanggal ng database.

Para sa opsyon 17, ang paunang data ay ang pangalan ng database file - YudinaDom1. FDB, Login - TEAM001, Password - slave001.

2. Pagkuha ng trabaho

Paglikha ng isang Database

Ang isang database ay nilikha gamit ang tool na IBExpert. Sa kasong ito, ang isang remote server na pinangalanang sqledu03 ay ginamit bilang isang database server.

Ang database file ay pinangalanang D:\Data\Lr1\YudinaDom1. FDB, Server - remote, Pangalan ng server - sqledu03, Protocol - TCP/IP, Client Library File - C:\Program Files\Firebird\Firebird_2_5\bin\fbclient. dll, Username - TEAM001, Password - slave001, laki ng pahina ng DB - 16384, Encoding - WIN1251, dialect ng DB - Dialect 3.

Ang database ay nakarehistro sa ilalim ng pangalang YudinaDom1. FDB. Sa kasong ito, ginamit ang bersyon 2.5 ng server ng Firebird (Tingnan ang Appendix A, Fig. 1. Paglikha ng database).

Pagrehistro ng database

Upang magrehistro ng database, piliin ang menu item na Database > Irehistro ang database. Bilang resulta, bubukas ang dialog box na "Pagpaparehistro ng Database", kung saan kailangan mong punan ang halos parehong mga patlang tulad ng kapag lumilikha ng isang database, pagkatapos ay i-click ang pindutan. Pagkatapos ng pagpaparehistro, ang lahat ng impormasyong ipinasok tungkol sa database ay naaalala ng IBExpert application at isang node na may nakarehistrong database ay idinagdag sa window ng "Database Explorer", sa puno sa tab na "Mga Database" (Tingnan ang Appendix A, Fig. 2. Pagpaparehistro ng database).

base operator backup

Pagkonekta sa database

Upang kumonekta sa isang nakarehistrong database, dapat mong piliin ang database sa listahan at isagawa ang Database > Connect to database command. Ang pangalan ng konektadong database sa window ng "Database Explorer" ay iha-highlight nang bold, at ang mga nested node na may mga bagay na nakapaloob sa konektadong database ay lilitaw din (Tingnan ang Appendix A, Fig. 3. Pagkonekta sa database).

Pagkuha ng metadata

Upang i-extract ang metadata, gamitin ang pangunahing menu command na Tools > Metadata Extraction, na magbubukas sa window na "Metadata Extraction." Sa window, lagyan ng check ang checkbox na "I-extract lahat", pagkatapos ay gamitin ang drop-down na listahan na "I-extract sa", piliin ang "Ehekutibo ng Script" kung saan kukunin ang metadata, at pagkatapos ay i-click ang button na [Simulan ang pagkuha] (Tingnan ang Appendix A , Fig. 4. Pagkuha ng metadata ). Pagkatapos ng pagkuha, bubukas ang window ng "Script Editor", na maglalaman ng na-extract na metadata. (Tingnan ang Appendix A, Fig. 5. Pagkuha ng metadata (script editor)).

Magtanggal ng database

Upang magtanggal ng database, dapat mong piliin ang menu command na Database > Tanggalin ang database, at pagkatapos ay kumpirmahin ang iyong pagnanais sa dialog box. (Tingnan ang Appendix A, Fig. 6. Pagtanggal ng database (Database menu)).

Paglikha ng database gamit ang "Script Editor"

Upang lumikha ng database, kailangan mong patakbuhin ang command Tools > Script Editor sa IBExpert application, pagkatapos ay ipasok ang mga command na lumikha ng database sa window ng "Script Editor" at i-click ang [Run script] na buton (Tingnan ang Appendix A, Fig. 7. Paglikha ng database (script editor Bilang resulta, isang mensahe tungkol sa matagumpay na pagpapatupad ng script ay dapat lumitaw. Upang magpatuloy sa pagtatrabaho, kailangan mong irehistro muli ang database at kumonekta dito.

Pag-backup at pagpapanumbalik ng database

Upang lumikha ng backup ng database gamit ang application na "IBExpert", kailangan mong isagawa ang menu command Services > Database Backup, sa dialog box na "DB Backup" na bubukas, magtakda ng ilang mga parameter at i-click ang button na [Start backup]. Bilang resulta, isang backup na file ang gagawin (Tingnan ang Appendix A, Fig. 8. Backup).

Upang i-restore ang isang database mula sa isang backup, gamitin ang utos ng Services > Database Restore. Bilang resulta, bubukas ang dialog box na "Database Restore", kung saan kailangan mong piliin ang linyang "Bagong database" sa field na "Ibalik ang Impormasyon", at ipasok ang pangalan ng database file na ibabalik sa "Database file" field (SQLEDU03: D: \DATA\Лр1\YudinaDom1. FDB), sa field na "File Name", ipasok ang pangalan ng file kung saan ibabalik ang database, pagkatapos ay i-click ang button (Tingnan ang Appendix A, Fig. 9 . Pagbawi ng database).

Mga file na nakuha sa panahon ng gawaing laboratoryo.

Ang script ng paglikha ng database ay na-edit. (Tingnan ang Appendix A, Figure 10. Database Script Editor). Ang script file ay nai-save sa server sa "LR1" na folder na may parehong pangalan bilang ang pangalan ng database, karaniwang extension "sql".

Bilang resulta ng gawaing laboratoryo, ang mga sumusunod na file ay nilikha:

1) Sitwasyon - D: \Data\Лр1\ YudinaDom1. sql

2) DB - D: \Data\Лр1\ YudinaDom1. fdb

3) Pag-backup ng database - D: \Data\LR1\YudinaDom1. fbk

4) Mag-file kasama ang ulat - D: \Data\LR1\Report1. odt

Mga sagot sa mga tanong sa seguridad

1. Tukuyin ang terminong "Database".

Ang isang database ay isang tiyak na hanay ng mga matatag na data na sumasalamin sa estado ng mga bagay at ang kanilang mga relasyon sa paksang lugar na isinasaalang-alang at ginagamit ng mga sistema ng aplikasyon ng isang negosyo.

2. Ano ang ibig sabihin ng mga pagdadaglat na DBMS at DBMS?

Sistema ng Pamamahala ng Database. Sistema ng Pamamahala ng Database.

3. Anong mga operasyon ang isinasagawa kasama ang database sa kabuuan?

Pagdaragdag ng bagong data, pagtanggal, pag-edit.

4. Ano ang database ng Firebird DBMS? Ano ang laki ng database file? Ano ang nakasalalay dito? Ano ang nilalaman ng database file?

Ang Firebird DBMS ay isang relational na DBMS na idinisenyo para gamitin sa mga application na may arkitektura ng kliyente/server. Sa Firebird, ang database ay isa o higit pang mga file na nag-iimbak ng data ng user at metadata - 2.40 MB. Sa dami ng impormasyong nakapaloob. Pangunahing data file, pangalawang data file at log file.

Nakakaapekto ang laki sa kahusayan ng DBMS;

6. Ano ang kailangang gawin upang ang mga character ng alpabetong Ruso ay maiimbak sa database?

Ang "Encoding" input field ay inilaan para sa pagpili ng isang character set ng pambansang alpabeto para sa database text field. Ang mga Russian Windows character ay nakapaloob sa Win1251 encoding. Kung ilalagay mo ang WALA sa field na ito, ang pag-encode na ginagamit ng operating system ay susuportahan.

7. Pangalanan ang mga pagkakaiba sa pagitan ng una at ikatlong dialect ng database.

Sa dialect 3, hindi tulad ng dialect 1, isang pinalawak na hanay ng mga uri ng data ang ginagamit, iba ang case ng mga identifier na nakasulat sa double quotes, at hindi sinusuportahan ang implicit na pag-cast ng mga uri ng data.

8. Ano ang mga paraan upang lumikha at magtanggal ng database?

Upang lumikha ng isang database, maaari mong gamitin ang isa sa dalawang pamamaraan:

1. Patakbuhin ang utos Database > Lumikha ng Database sa IBExpert application, ipasok ang mga parameter ng database na gagawin sa dialog box na "Paglikha ng Database" at i-click ang [ button OK].

2. Patakbuhin ang command sa IBExpert application Mga Tool > Script Editor, pagkatapos ay ipasok ang mga command na lumikha ng database sa window ng "Script Editor" at i-click ang [ button Isagawa ang script] (F9).

Upang alisin:

1. Sa programang "IBExpert", isagawa ang menu command na Database > Tanggalin ang database, at pagkatapos ay kumpirmahin ang iyong pagnanais sa dialog box.

2. Ipatupad ang SQL statement DROP DATABASE.

3. Manu-manong tanggalin ang database file.

9. Paano mo tukuyin ang landas sa isang file na may database na matatagpuan sa isang malayuang computer?

Pangalan ng server: File path (sqledu03: D:\Data\Lr1\YudinaDom1. fdb)

10. Anong mga karaniwang extension ang mayroon ang database at mga script file?

Database file "fdb", script "sql".

11. Paano ko magagamit ang application na "IBExpert" upang kumonekta sa isang umiiral na database na matatagpuan sa isang lokal na computer?

Upang kumonekta sa isang nakarehistrong database, kailangan mong piliin ang nais na database sa listahan at patakbuhin ang command Database > Kumonekta sa database, o i-double click ang pangalan ng napiling database.

12. Anong pangalan at paunang password ang mayroon ang administrator ng Firebird server?

Pangalan: SYSDBA, password: masterkey.

13. Anong mga uri ng mga komento ang maaaring maglaman ng mga script file upang maisagawa ang mga pagpapatakbo ng database?

Ang isang script ay maaaring maglaman ng dalawang uri ng mga paliwanag na komento: isang multi-line na komento (nagsisimula sa "/*" at nagtatapos sa "*/") at isang solong linya na komento, na nagsisimula sa "-" at nagpapatuloy hanggang sa dulo ng linya.

14. Ilang system table ang nilalaman ng nilikhang database? Anong mga karakter ang kanilang sisimulan? Ibigay ang mga pangalan ng anumang 3 system table.

34 na mesa. Nagsisimula sa karakter na "sys.". Mga halimbawa: "sys. sysschobjs" - Umiiral sa bawat database. Ang bawat linya ay kumakatawan sa isang database object; "sys. sysscalartypes" - Umiiral sa bawat database. Naglalaman ng linya para sa bawat sistema o uri ng data ng user; "sys. sysowners" - Umiiral sa bawat database. Ang bawat hilera ay tumutugma sa isang kalahok sa database.

15. Ano ang mga tuntunin sa pag-format ng teksto ng script?

Ang mga expression sa isang pahayag ay palaging nagsisimula sa isang bagong linya, naka-indent ng 1 posisyon mula sa kanang gilid ng pangunahing elemento ng pahayag (PUMILI, MULA, SAAN, SA, ...). Ang mga operator na nakapaloob sa script ay pinaghihiwalay mula sa isa't isa ng simbolong ";". Kapag nagdedeklara ng mga talahanayan, pangalan ng column, uri, default na halaga, Nullable na mga hadlang ay nakahanay sa kaliwa.

Konklusyon

Sa panahon ng gawaing laboratoryo, ang mga operasyon na may mga database sa pangkalahatan ay pinag-aralan. Nakakuha ng mga kasanayan sa paggamit ng application na "IBExpert" upang lumikha, magtanggal, magrehistro, kumonekta, mag-extract ng metadata, mag-backup at mag-restore ng isang database ng Firebird DBMS. Natutunan ang mga SQL statement para gumawa, kumonekta at magtanggal ng database.

Na-post sa Allbest.ru

Mga katulad na dokumento

    Sistema ng pamamahala ng database (DBMS). Mga tool sa software na idinisenyo upang lumikha, mag-populate, mag-update at magtanggal ng isang database. Istraktura, modelo at pag-uuri ng mga database. Paglikha ng mga direktoryo, alias, talahanayan, template at mga form ng DBMS.

    pagtatanghal, idinagdag noong 01/09/2014

    Pagdidisenyo ng relational database gamit ang MS ACCESS application software. Mga paglalarawan ng mga tampok ng paggamit ng mga query upang kunin, baguhin at tanggalin ang impormasyon mula sa isang database. Mga katangian ng istraktura ng user interface.

    course work, idinagdag noong 11/19/2012

    Pag-uuri ng mga database. Pagpili ng isang database management system upang lumikha ng isang database sa network. Mabilis na pag-access at pagkuha ng partikular na impormasyon sa mga function. Pamamahagi ng mga function kapag nagtatrabaho sa isang database. Mga pangunahing tampok ng hierarchical na modelo.

    ulat ng pagsasanay, idinagdag noong 10/08/2014

    Wika ng Paglalarawan ng Data ng Oracle. Ang layunin ng isang database ay mag-imbak ng impormasyon. Paglikha at pagbabago ng mga talahanayan gamit ang Gumawa at Baguhin ang mga pahayag ng talahanayan. Mga panuntunan sa pagpapangalan ng talahanayan. Palitan ang pangalan at Putulin ang mga operator. Paraan para sa paglikha at pagtanggal ng view.

    pagtatanghal, idinagdag noong 02/14/2014

    Ang mekanismo at mga pangunahing yugto ng paglikha at pangangasiwa ng database para sa isang book file o library gamit ang mga tool ng Microsoft SQL Server. Mga katangian ng database na ito at mga kinakailangan para dito. Mga pangunahing operasyon sa database na pinag-aaralan.

    course work, idinagdag noong 06/21/2011

    Ang konsepto ng isang relational data model, ang integridad ng kakanyahan nito at mga link. Ang mga pangunahing yugto ng paglikha ng isang database, pag-link ng mga talahanayan sa diagram ng data. Pagdidisenyo ng database para sa katalogo ng aklat na "Mga Aklat" gamit ang Microsoft Access DBMS at ang SQL query language.

    course work, idinagdag noong 11/25/2010

    Disenyo ng pisikal at lohikal na mga modelo ng isang malayong database para sa mga istasyon ng gas. Pagbuo ng isang database sa Firebird DBMS gamit ang utility ng IBExpert. Paglikha ng application ng kliyente para sa Windows gamit ang teknolohiya ng client-server sa kapaligiran ng C++ Builder.

    course work, idinagdag 01/18/2017

    Paglikha ng isang database sa MS Access. Paglikha at pagtatrabaho sa isang database sa studio. Algorithm para sa paglutas ng problema. Pagpili ng package ng application. Pagdidisenyo ng mga anyo ng mga dokumento ng output gamit ang MS Access DBMS. Istraktura ng talaan ng talahanayan ng database.

    course work, idinagdag noong 01/30/2009

    Ang DBMS ay mga multi-user database management system na dalubhasa sa pamamahala ng isang hanay ng impormasyon. Mga kahilingan para sa pag-sample at pagbabago ng data, pagbuo ng mga ulat sa mga kahilingan sa pag-sample. Schema ng database. Programa sa pamamahala ng database.

    abstract, idinagdag noong 12/27/2013

    Layunin ng database upang matiyak ang operasyon ng armada ng bus. Mga pangunahing tampok ng admin panel. Mga function na isinagawa ng database at application. Infological data modeling. Paglalarawan ng binuong web application. Disenyo ng database.

Ang relational algebra ay batay sa set theory at ang batayan ng database logic.
Noong pinag-aaralan ko pa lamang ang istruktura ng mga database at SQL, ang isang paunang pamilyar sa relational algebra ay nakatulong nang malaki sa karagdagang kaalaman upang mailagay nang tama sa aking ulo, at susubukan kong gawin ang artikulong ito na magkaroon ng katulad na epekto.

Kaya kung ikaw ay magsisimula ng iyong pag-aaral sa lugar na ito o ikaw ay interesado lamang, mangyaring mag-click sa pusa.

Relational database

Una, ipakilala natin ang konsepto ng isang relational database kung saan gagawin natin ang lahat ng aksyon.

Ang relational database ay isang koleksyon ng mga relasyon na naglalaman ng lahat ng impormasyon na dapat itago sa database. Sa kahulugang ito, interesado tayo sa terminong kaugnayan, ngunit sa ngayon ay iiwan natin ito nang walang mahigpit na kahulugan.
Isipin natin ang isang talahanayan ng mga produkto nang mas mahusay.

PRODUCTS table

ID NAME KOMPANYA PRICE
123 Mga cookies Madilim na Gilid LLC 190
156 tsaa Madilim na Gilid LLC 60
235 Mga pinya OJSC "Frukty" 100
623 Mga kamatis OOO "Mga Gulay" 130

Ang talahanayan ay binubuo ng 4 na mga hilera, ang isang hilera sa talahanayan ay isang tuple sa teorya ng pamanggit. Ang isang set ng ordered tuples ay tinatawag na relation.
Bago tukuyin ang isang relasyon, ipakilala natin ang isa pang termino - domain. Ang mga domain na nauugnay sa isang talahanayan ay mga column.

Para sa kalinawan, ipinakilala namin ngayon ang isang mahigpit na kahulugan ng isang relasyon.

Hayaang ibigay ang N set D1,D2, …. Ang Dn (mga domain), isang ugnayang R sa mga hanay na ito ay ang hanay ng mga nakaayos na N-tuple ng form , kung saan ang d1 ay kabilang sa D1, atbp. Ang mga hanay na D1,D2,..Dn ay tinatawag na mga domain ng relasyong R.
Ang bawat elemento ng tuple ay kumakatawan sa halaga ng isa sa mga katangiang nauugnay sa isa sa mga domain.

Mga susi sa relasyon
Sa isang relasyon, ang kinakailangan ay ang lahat ng tuple ay dapat na naiiba. Upang natatanging makilala ang isang tuple, mayroong pangunahing susi. Ang pangunahing key ay isang katangian o hanay ng pinakamababang bilang ng mga katangian na natatanging tumutukoy sa isang partikular na tuple at walang mga karagdagang katangian.
Ang implikasyon ay ang lahat ng mga katangian sa pangunahing susi ay dapat na kinakailangan at sapat upang matukoy ang isang partikular na tuple, at ang pag-alis ng alinman sa mga katangian sa susi ay magiging hindi sapat para sa pagkakakilanlan.
Halimbawa, sa naturang talahanayan ang susi ay isang kumbinasyon ng mga katangian mula sa una at pangalawang column.

DRIVERS table

Makikita na ang isang organisasyon ay maaaring magkaroon ng ilang mga driver, at upang natatanging makilala ang driver, ang parehong halaga mula sa column na "Pangalan ng Organisasyon" at mula sa column na "Pangalan ng Driver" ay kinakailangan. Ang naturang key ay tinatawag na composite key.

Sa isang relational database, ang mga talahanayan ay magkakaugnay at nauugnay sa isa't isa bilang master at subordinate na mga talahanayan. Ang koneksyon sa pagitan ng pangunahing at subordinate na mga talahanayan ay isinasagawa sa pamamagitan ng pangunahing susi ng pangunahing talahanayan at ang dayuhang susi ng subordinate na talahanayan.
Ang foreign key ay isang attribute o set ng mga attribute na pangunahing key sa main table.

Ang teorya ng paghahanda na ito ay magiging sapat upang maging pamilyar sa mga pangunahing operasyon ng relational algebra.

Mga operasyon ng relational algebra

Ang pangunahing walong operasyon ng relational algebra ay iminungkahi ni E. Codd.
  • Samahan
  • Intersection
  • Pagbabawas
  • Produktong Cartesian
  • Sample
  • Projection
  • Tambalan
  • Dibisyon
Ang unang kalahati ng mga operasyon ay katulad ng parehong mga operasyon sa mga set. Ang ilang mga operasyon ay maaaring ipahayag sa mga tuntunin ng iba pang mga operasyon. Tingnan natin ang karamihan sa mga operasyon na may mga halimbawa.

Para sa pag-unawa, mahalagang tandaan na ang resulta ng anumang operasyon ng algebra sa mga relasyon ay isa pang kaugnayan, na maaaring magamit sa ibang mga operasyon.
Gumawa tayo ng isa pang talahanayan na magiging kapaki-pakinabang sa atin sa mga halimbawa.

SELLERS table

ID NAGBEBENTA
123 OOO “Dart”
156 JSC "Vedro"
235 CJSC "Vegetable Baza"
623 JSC "Firm"

Sumang-ayon tayo na sa table ID na ito ay isang foreign key na nauugnay sa pangunahing key ng PRODUCTS table.

Una, tingnan natin ang pinakasimpleng operasyon - ang pangalan ng relasyon. Ang magiging resulta nito ay ang parehong kaugnayan, iyon ay, sa pamamagitan ng pagsasagawa ng PRODUCTS operation, makakatanggap kami ng kopya ng PRODUCTS relation.

Projection
Ang projection ay isang operasyon kung saan ang mga katangian mula sa isang relasyon ay kinukuha lamang mula sa mga tinukoy na domain, iyon ay, ang mga kinakailangang column lamang ang pipiliin mula sa talahanayan, at kung maraming magkaparehong tuple ang nakuha, isang instance lamang ng naturang tuple ang mananatili sa ang resultang relasyon.
Halimbawa, gumawa tayo ng projection sa PRODUCTS table sa pamamagitan ng pagpili ng ID at PRICE mula dito.

Syntax ng operasyon:
π (ID, PRICE) MGA PRODUKTO

Sa sample na kundisyon maaari naming gamitin ang anumang Boolean expression. Gumawa tayo ng isa pang pagpipilian na may presyong higit sa 90 at product ID na mas mababa sa 300:

σ(PRICE>90^ID<300) PRODUCTS

Pagpaparami
Ang multiplication o Cartesian na produkto ay isang operasyong isinagawa sa dalawang relasyon, bilang resulta kung saan nakakakuha tayo ng kaugnayan sa lahat ng domain mula sa dalawang unang relasyon. Ang mga tuple sa mga domain na ito ay ang lahat ng posibleng kumbinasyon ng mga tuple mula sa mga unang ugnayan. Ito ay magiging mas malinaw sa isang halimbawa.

Nakukuha namin ang Cartesian na produkto ng mga PRODUCTS at SELLERS tables.
Syntax ng operasyon:

MGA PRODUKTO × MGA NAGBEBENTA
Mapapansin mo na ang dalawang talahanayan na ito ay may parehong ID domain. Sa sitwasyong ito, ang mga domain na may parehong pangalan ay naka-prefix sa pangalan ng kaukulang relasyon, tulad ng ipinapakita sa ibaba.
Para sa kaiklian, i-multiply natin hindi ang kumpletong mga ratio, ngunit ang mga sample na may condition ID<235

(ang parehong mga tuple ay naka-highlight sa kulay)

PRODUCTS.ID NAME KOMPANYA PRICE SELLERS.ID NAGBEBENTA
123 Mga cookies Madilim na Gilid LLC 190 123 OOO “Dart”
156 tsaa Madilim na Gilid LLC 60 156 JSC "Vedro"
123 Mga cookies Madilim na Gilid LLC 190 156 JSC "Vedro"
156 tsaa Madilim na Gilid LLC 60 123 OOO “Dart”

Para sa isang halimbawa ng paggamit ng operasyong ito, isipin ang pangangailangang pumili ng mga nagbebenta na may mga presyong mas mababa sa 90. Kung wala ang produkto, kakailanganin munang kumuha ng mga ID ng produkto mula sa unang talahanayan, pagkatapos ay gamitin ang mga ID na ito mula sa pangalawang talahanayan upang makuha ang kinakailangang Mga pangalan ng SELLER, at gamit ang produkto ang sumusunod na query ay magiging:

π (SELLER) σ (RODUCTS.ID=SELLERS.ID ^ PRICE<90) PRODUCTS × SELLERS

Bilang resulta ng operasyong ito nakukuha namin ang kaugnayan:

NAGBEBENTA
JSC "Vedro"
Koneksyon at natural na koneksyon
Ang joint operation ay ang kabaligtaran ng projection operation at lumilikha ng bagong relasyon mula sa dalawang umiiral na. Ang isang bagong relasyon ay nakuha sa pamamagitan ng pagsasama-sama ng mga tuple ng una at pangalawang relasyon, habang ang mga relasyon kung saan ang mga halaga ng tinukoy na mga katangian ay nag-tutugma ay napapailalim sa pagsasama. Sa partikular, kung ikinonekta mo ang mga ugnayan ng PRODUCTS at SELLERS, ang mga attribute na ito ay ang mga attribute ng mga ID domain.

Gayundin, para sa kalinawan, maaari mong isipin ang isang koneksyon bilang resulta ng dalawang operasyon. Una, ang produkto ng mga talahanayan ng pinagmulan ay kinuha, at pagkatapos ay mula sa nagresultang kaugnayan ay gagawa kami ng pagpili na may kondisyon ng pagkakapantay-pantay ng mga katangian mula sa parehong mga domain. Sa kasong ito, ang kundisyon ay ang pagkakapantay-pantay ng PRODUCTS.ID at SELLERS.ID.

Subukan nating ikonekta ang mga relasyong MGA PRODUKTO at NAGBENTA at magkaroon ng kaugnayan.

PRODUCTS.ID NAME KOMPANYA PRICE SELLERS.ID NAGBEBENTA
123 Mga cookies Madilim na Gilid LLC 190 123 OOO “Dart”
156 tsaa Madilim na Gilid LLC 60 156 JSC "Vedro"
235 Mga pinya OJSC "Frukty" 100 235 CJSC "Vegetable Baza"
623 Mga kamatis OOO "Mga Gulay" 130 623 JSC "Firm"

Ang natural na pagsali ay nakakatanggap ng katulad na kaugnayan, ngunit kung mayroon kaming wastong na-configure na schema sa database (sa kasong ito, ang pangunahing key ng PRODUCTS ID table ay naka-link sa foreign key ng SELLERS ID table), kung gayon ang resultang kaugnayan ay naglalaman ng isang ID domain lang.

Syntax ng operasyon:
MGA PRODUKTO ⋈ MGA NAGBEBENTA;

Nakukuha mo ang kaugnayang ito:

PRODUCTS.ID NAME KOMPANYA PRICE NAGBEBENTA
123 Mga cookies Madilim na Gilid LLC 190 OOO “Dart”
156 tsaa Madilim na Gilid LLC 60 JSC "Vedro"
235 Mga pinya OJSC "Frukty" 100 CJSC "Vegetable Baza"
623 Mga kamatis OOO "Mga Gulay" 130 JSC "Firm"
Intersection at pagbabawas.
Ang resulta ng operasyon ng intersection ay isang relasyon na binubuo ng mga tuple na ganap na kasama sa parehong mga relasyon.
Ang resulta ng pagbabawas ay isang kaugnayan na binubuo ng mga tuple na mga tuple ng unang kaugnayan at hindi mga tuple ng pangalawang kaugnayan.
Ang mga operasyong ito ay katulad ng parehong mga operasyon sa mga set, kaya sa tingin ko ay hindi na kailangang ilarawan ang mga ito nang detalyado.
Mga mapagkukunan ng impormasyon
  • Mga pangunahing kaalaman sa paggamit at pagdidisenyo ng mga database - V. M. Ilyushechkin
  • kurso sa panayam Panimula sa Mga Database - Jennifer Widom, Stanford University

Magpapasalamat ako para sa mga makatwirang komento

Ang pinakamagandang lugar upang simulan ang pag-aaral ng SQL ay ang mga pangunahing kaalaman ng mga relational database. Ipapaliwanag ko kung ano ang isang relational database, kung ano ang isang relasyon at kung anong mga operasyon ang maaaring gawin sa kanila.

Tara na...

Ano ang SQL?

SQL (Structured Query Language)– structured query language, isang unibersal na computer language na ginagamit para sa paglikha, pagbabago at pamamahala ng data sa relational database

Ano ang isang relational database?

Ito ay isang koleksyon ng magkakaugnay na data na nakaimbak sa anyo ng mga relasyon

Ano ang isang relasyon?

Ang isang relasyon ay isang tiyak na hanay ng mga card

Ano ang tuple?

Ang cartage ay isang tiyak na hanay ng mga elemento, at ang bawat elemento ng set ay kabilang sa isang tiyak na hanay (maaaring sabihin ng isa ang uri ng elemento). Upang ilagay ito nang simple, ang isang tuple ay listahan ng mga elemento kung saan mayroong isang relasyon o gaya ng sinasabi nila, may ugali. Maaari kang kumatawan sa isang tuple gamit ang isang graph o talahanayan na binubuo ng isang linya.

Ipapakita ko ang isang tuple ng dalawang elemento gamit ang isang graph:

Ang mga vertex ng graph ay ang mga elemento ng kanilang tiyak na hanay, sa kasong ito, ito ang elemento a1 mula sa marami A at elemento b1 mula sa marami B. Ang gilid sa pagitan ng mga vertex ay nagpapahiwatig koneksyon sa pagitan ng mga elemento o gaya ng sinasabi nilang elemento Ang a1 ay nauugnay sa b1.

Ipapakita ko ang parehong tuple gamit ang isang talahanayan:

Numero 1 sa a1 At b1, ay pinili nang random.

Kaya, nakarating kami sa elementarya brick, i.e. sa motorcade, simulan nating i-unwinding ang ating lohika pabalik upang maunawaan kung ano ito database ng relasyon At SQL.

Gaya ng sinabi ko ang isang relasyon ay isang hanay ng mga tuple, at limitado (kung lalayo tayo sa teorya). Ang mga relasyon ay maaaring katawanin sa anyo ng isang matrix, graph, o talahanayan.

Ipapakita ko kung paano kumakatawan sa isang relasyon bilang isang graph:

Ipinapakita ng graph na mayroong ilang tuple, at aling tuple ang una, at alin ang pangalawa at pangatlo hindi mahalaga, isa lang itong set ng tuples. Sa isang set walang ganoong konsepto bilang "una", "pangalawa" at "ikatlo", lahat ito ay sabay-sabay at ang pagkakasunud-sunod ay hindi mahalaga.

Hayaan akong ipakita kung paano kumatawan sa isang relasyon sa anyo ng talahanayan:

Pagkakasunod-sunod ng mga linya o tuples sa mesa hindi mahalaga, kinuha ko sila mula sa graph sa random na pagkakasunud-sunod.

Mahalaga ring tandaan iyon pagkakasunud-sunod ng mga hanay Pareho hindi mahalaga, kung palitan natin ang mga ito, pagkatapos ay mula sa punto ng view ng set theory, mananatiling hindi magbabago ang ugali. Ito ang eksaktong negatibong bahagi ng isang talahanayan bilang isang paraan upang mailarawan ang isang relasyon, dahil magiging mahirap para sa ating sikolohikal na tawagan ang mga talahanayan na pantay-pantay kung mayroon silang mga column at row sa magkakaibang pagkakasunud-sunod.

Tulad ng sinabi sa pinakadulo simula, ang isang relational database ay isang set ng magkakaugnay na data na nakaimbak sa anyo ng mga relasyon. Kung kinakatawan natin ang mga relasyon sa anyo ng mga talahanayan, kung gayon ang relational database ay isang set ng magkakaugnay na mga talahanayan. Ito pala Ang SQL ay isang wika para sa paglikha, pagbabago at pamamahala ng mga talahanayan sa isang relational database.

Kaya, nalaman namin ang lohikal na kadena: SQL, relational database, mga relasyon, tuple... Ngayon ay hahawakan natin ang wikang SQL, i.e. ang paksa ng pagmamanipula ng relasyon ay mahalagang maunawaan anong mga operasyon ang maaari nating gawin sa mga relasyon?.

Hindi posible na ipakita ang lahat ng mga operasyon, dahil sa kanilang malaking bilang, ibibigay ko lamang ang mga pangunahing:

1. Pagpili (ang ibang mga pangalan ng operasyon ay sampling, paghihigpit)

Operasyon "pagpili" o "sample" tumatakbo sa isang relasyon, ang kahulugan nito ay ayon sa isang ibinigay na kundisyon, isang subset ng tuple ang pipiliin. Ang resulta ng operasyon ay kaugnayan na naiiba sa orihinal sa pamamagitan ng isang mas maliit na bilang ng mga tuple. Halimbawa:

Hayaang magkaroon ng kaugnayan, tawagan natin itong "source table No. 1":

Resulta "mga sample" mula sa orihinal na talahanayan No. 1, sa kondisyon na A=a3

Sa wikang SQL:

syntax - SELECT * FROM table_name WHERE column_name=value

PUMILI * MULA sa source_table WHERE А=a3

2. Projection

Operasyon "project" tumatakbo sa isang relasyon, bilang isang resulta nito ay nabuo ang isang bago kaugnayan sa tinukoy na mga column ng talahanayan.

Halimbawa, may kaugnayan, tawagan natin itong "source table No. 2":

Magsagawa tayo ng operasyon sa kaugnayang ito "project" sa pamamagitan ng mga katangian A At SA, resulta:

Bilang resulta, nakatanggap kami ng dalawang magkaparehong mapa; hindi ito maaaring mangyari sa isang relasyon, kaya paikliin natin ang mga ito (sa DBMS, awtomatikong nagaganap ang mga pagbawas):

Ito ay lumiliko na sa panahon ng projection maaari naming bawasan ang bilang ng mga tuple, nangyayari ito hindi ito dapat ituring na isang pagkakamali.

Sa wikang SQL:

syntax - PUMILI ng column_list MULA sa table_name

pagpapatupad para sa kasong ito - PUMILI A, C MULA sa source_table_№2

3. Likas na koneksyon

operasyon" natural na koneksyon» ay tumatakbo higit sa dalawang lohikal na kaugnay na relasyon, bilang resulta nito, nabuo ang isang bagong ugnayan sa mga hanay ng una at pangalawang ugnayan at sa mga tuple na nakuha bilang resulta ng pagsasama sa bawat tuple ng una at pangalawang ugnayan. Dapat itong maging mas malinaw sa isang halimbawa, sabihin nating mayroong dalawang relasyon, tawagin natin ang mga ito ng source table No. 3.1 at source table No. 3.2:

Pinagmulan ng talahanayan Blg. 3_1

Pinagmulan talahanayan Blg. 3_2

Gawin natin ang operasyon "mga koneksyon" una at pangalawang relasyon, resulta:

Ito ay kagiliw-giliw na tandaan na nakuha namin ang orihinal na kaugnayan mula sa seksyong "2. Projection", hindi mahalaga ang pagkakasunod-sunod ng mga column sa kaugnayan.

Sa wikang SQL:

pagpapatupad para sa kasong ito - PUMILI ng source_table_№3_1.*, source table №3_2.В FROM source_table_№3_1, source table №3_2 WHERE source table №3_1.A= source table №3_2.A

4. Samahan

Operasyon "pagkakaisa" tumatakbo higit sa dalawang relasyon na may parehong hanay ng mga column at parehong uri ng data sa mga column na ito, bago ang resulta ng operasyon isang ugnayan na kinabibilangan ng lahat ng tuple ng "una" at "ikalawang" ugnayan(pinaikli ang mga umuulit).

Pinagmulan talahanayan Blg. 4_1

Pinagmulan talahanayan Blg. 4_2

Gawin natin ang operasyon "asosasyon" relasyon No. 4.1 at relasyon No. 4.2, resulta:

Sa wikang SQL:

syntax - PUMILI ng table_column_list1 MULA sa table1 UNION SELECT table_column_list2 MULA sa table2

pagpapatupad para sa kasong ito - PUMILI A,B MULA sa source_table_№4_1 UNION SELECT A,B MULA sa source_table_№4_2

5. Intersection

Operasyon "intersection" naisakatuparan, bago ang resulta ng operasyon isang relasyon na kinabibilangan ng parehong tuple ng "una" at "pangalawa" na relasyon.

Halimbawa, magkaroon ng dalawang relasyon:

Pinagmulan talahanayan Blg. 5_1

Pinagmulan talahanayan Blg. 5_2

Gawin natin ang operasyon "intersection" sa mga ugnayang ito, ang resulta ay:

Yung. sa resultang relasyon, nakuha paulit-ulit na tuple mula sa "una" At "pangalawa" relasyon.

Sa wikang SQL:

syntax - SELECT one_of_table.column1, one_of_table.column2, ... MULA sa table1, table2 SAAN table1.column1=table2.column1 AT table1.column2= table2.column2 AT ...

pagpapatupad para sa kasong ito -

PILIin ang source_table_No. 5_1.A, source_table_No

6. Pagbabawas (pagkakaiba)

Operasyon "pagbabawas" tumatakbo higit sa dalawang relasyon na may parehong hanay ng mga column at parehong uri ng data sa mga column na ito, bago ang resulta ng operasyon isang relasyon na kinabibilangan ng mga tuple ng "unang" na relasyon na iba sa mga tuple ng "pangalawang" na relasyon, sa tingin ko dapat itong maging mas malinaw sa isang halimbawa.

Halimbawa, magkaroon ng dalawang relasyon:

Pinagmulan talahanayan Blg. 6_1

Pinagmulan talahanayan Blg. 6_2

Gawin natin ang operasyon "pagkakaiba", ibig sabihin. mula sa orihinal na talahanayan Blg. 6_1 ay ibawas natin ang orihinal na talahanayan Blg. 6_2, ang resulta:

Yung. ang resultang ugnayan ay ang "unang" ugnayan na walang paulit-ulit na tuple ng "ikalawang" ugnayan.

Sa wikang SQL:

pagpapatupad para sa kasong ito – PUMILI ng source_table_№6_1.А, source_table_№6_1.В FROM source_table_№6_1 WHERE WHERE WHERE WHERE WHERE EXISTS (SELECT source_table_№6_2.А, source_table_№6_2.В FROM source_table_№6_2
SAAN source_table_No.6_2.A= source_table_No.6_1.A AT source_table_No.6_2.B= source_table_No.6_1.B)

7. Produktong Cartesian

Ang produkto ng Cartesian ay isinagawa sa dalawang arbitrary na relasyon, ang resulta ng operasyon ay isang bagong kaugnayan sa bilang ng mga haligi na katumbas ng kabuuan ng bilang ng mga haligi ng "una" at "pangalawa" na mga relasyon, at ang bilang ng mga hilera ay katumbas. sa produkto ng bilang ng mga hilera ng "una" at "pangalawang" relasyon. Ang mga tuple ng isang ugnayan ng resulta, sa mga simpleng termino, ay nakuha sa pamamagitan ng pagsasama-sama ng bawat tuple ng "unang" na kaugnayan sa mga tuple ng "pangalawang" kaugnayan.

Halimbawa, magkaroon ng dalawang arbitrary na relasyon:

Pinagmulan talahanayan Blg. 7_1

Pinagmulan talahanayan Blg. 7_2

Magpo-produce kami "Produktong Cartesian" binigyan ng dalawang relasyon, ang resulta ay:

Sa wikang SQL:

pagpapatupad para sa kasong ito – PUMILI ng source_table_No. 7_1.B, source_table_No

Nakipag-usap kami sa mga pangunahing operasyon sa mga relasyon at sa dulo ng teoretikal na bahagi ng post ay malalaman natin kung ano ang isang susi.

Ano ang isang susi?

Ang susi ay isa o higit pang mga column ng talahanayan, na natatanging tumutukoy sa isang talaan (string). Halimbawa, hayaang magkaroon ng kaugnayan na ipinakita sa anyo ng isang talahanayan:

Susi relasyong ito baka column A. kasi mga halaga para sa column na ito lamang kaugnay ng, Halimbawa: a3 tumutukoy sa isang talaan "a3 b1 d3", a2 tutukuyin ang rekord "a2 b2 d3", a1 tumutukoy sa isang talaan "a1 b2 d1". Ang ibang mga column ay hindi maaaring magbigay ng function na ito.

Kung ang susi ay binubuo ng isang column, pagkatapos ito ay tinatawag na simple lang, kung mula sa ilang tawag nila sa kanya pinagsama-sama. Sa talahanayang ito, bilang karagdagan sa simpleng susi, may isa pa - composite, na binubuo ng mga column B at D. Ang mga halaga ng mga column na ito ay natatanging tutukuyin ang record (row), halimbawa: b1 at d3 natatanging kinikilala ang talaan "a3 b1 d3", b2 at d3 natatanging tumutukoy sa entry "a2 b2 d3", b2 at d1 natatanging kinikilala ang talaan "a1 b2 d1".

Sa pagsasagawa, kadalasang pinipili ito isang susi, at ang pinakasimple, sa kasong ito ito ang column A. Ang susi na ito ay tinatawag ding " pangunahing susi».

Maaaring interesado ka sa: