* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download SRBD security - hornad.fei.tuke.sk
Open Database Connectivity wikipedia , lookup
Entity–attribute–value model wikipedia , lookup
Concurrency control wikipedia , lookup
Extensible Storage Engine wikipedia , lookup
Microsoft Access wikipedia , lookup
Relational model wikipedia , lookup
Microsoft Jet Database Engine wikipedia , lookup
Functional Database Model wikipedia , lookup
TECHNICKÁ UNIVERZITA KOŠICE FAKULTA ELEKTROTECHNIKY A INFORMATIKY KATEDRA POČÍTAČOV A INFORMATIKY Bezpečnosť SRBD (Referát) Zadanie z predmetu Systémy riadenia bázy dát Ročník: 4. Skupina: ŠPZ Šk. Rok: 2002/2003 Cvičiaci: Ing. Ján Genči Spracoval: Ing. Viktor Belko 2 Obsah SRBD security .................................................................................................................................. 4 THE NEED FOR SYSTEMS SECURITY .................................................................................. 4 SECURITY CONCEPTS ............................................................................................................. 4 Strong User Authentication For Accountability....................................................................... 5 Database Password-Based Authentication ............................................................................... 5 Host-Based Authentication ...................................................................................................... 5 Third Party-Based Authentication ............................................................................................ 6 Authentication Through a Middle Tier .................................................................................... 6 Mutual Authentication For Secure Distributed Computing ..................................................... 6 Privileges That Protect Data ..................................................................................................... 6 System Privileges ..................................................................................................................... 6 Object Privileges ...................................................................................................................... 7 Views To Customize Access To Information .......................................................................... 7 Stored Procedures To Customize Operations On Data ................................................................ 8 The Virtual Private Database ....................................................................................................... 9 Flexible Implementation ........................................................................................................ 10 Strong, Server-Enforced Security .......................................................................................... 10 Triggers To Customize Functionality .................................................................................... 11 Prednášky SRBD ............................................................................................................................ 12 Relačná algebra (RA) ................................................................................................................. 12 Rozširujúce operácie RA ........................................................................................................ 12 SELEKCIA - σ ....................................................................................................................... 12 PROJEKCIA - Ð .................................................................................................................... 12 SPOJENIE .............................................................................................................................. 13 Normalizácia .......................................................................................................................... 13 Transakčné spracovanie ............................................................................................................. 13 Čo je to transakcia? ................................................................................................................ 14 Vlastnosti ACID : ................................................................................................................... 14 Transakčné modely ................................................................................................................ 14 Štruktúra objektov : ................................................................................................................ 14 Štruktúra transakcie ................................................................................................................ 15 Paralelné spracovanie transakcií. ........................................................................................... 15 Problémy s paralelným spracovaním transakcii. .................................................................... 15 Sériové a usporiadateľné rozvrhy........................................................................................... 15 Konfliktová usporiadateľnosť ................................................................................................ 16 Spracovanie dotazov (Query Processing ).................................................................................. 16 Fázy spracovania dotazov ...................................................................................................... 16 Optimalizácia ......................................................................................................................... 16 Fázy optimalizačného procesu ............................................................................................... 17 Ekvivalenčné pravidlá zahrňujúce špeciálne množinové operácie ........................................ 17 Ekvivalenčné pravidlá zahrňujúce tradičné množinové operácie .......................................... 18 Univerzálne pravidlá pre optimálne transformácie ................................................................ 18 Indexácia .................................................................................................................................... 18 3 Data Dictionary – Systémový Katalóg (SK) .............................................................................. 18 Pohľady v SK ......................................................................................................................... 20 Dynamic Performance Tables ................................................................................................ 20 Fyzická organizácia ................................................................................................................... 20 Primárna organizácia súborov ................................................................................................ 21 4 SRBD security THE NEED FOR SYSTEMS SECURITY The opening of mission-critical systems to partners and customers over the Internet poses new challenges to traditional notions of enterprise security. Data access must now be controlled at a very fine level of granularity, often to the level of individual customers or users. Organizations providing "hosting" environments seek to deploy common applications which nonetheless can incorporate customer-specific preferences, and operate on customer-specific data. Databases addresses these requirements by providing highly granular, server-enforced access control and flexible privilege models. Users can be strongly authenticated, even remotely, and data is protected in transit by network encryption. Database enforces the same strong security whether users access data directly, or through middle tiers, such as application servers or transaction processing (TP) monitors. Another challenge of system security is ease of management. Organizations spend significant time and resources managing multiple user accounts and privileges. Additionally, they often must implement security in multiple applications accessing the same data which is duplicative and often leads to security vulnerabilities instead of building security once, in the data server. Security is often complex and expensive to implement. Databases addresses these needs by offering integrated security and directory services, which enables Public Key Infrastructure (PKI)-based single sign-on. Single Station Administration allows organizations to manage users and their privileges centrally, with greater ease and lower cost. Flexible, granular security can be built once in the data server, instead of in multiple applications, and business logic may be divorced from actual privileges and data, which means that applications can be developed once, then reused and redeployed at significant cost savings. Within the enterprise, information is stored on physically separate computers in different locations. Therefore, it is essential that users be able to access all information easily and consistently. Consequently, a database server must provide the technology to hide the complexity of data access from users, allowing them to access distributed information as if it were all stored on the same computer. For example Oracle addresses this requirement by providing a transparent interface to all data in the system, improving access to information and simplifying application development. Oracle addresses all these security and functionality needs by providing complete and robust facilities for managing data and implementing a strong, yet flexible, security policy. This paper describes these security facilities, and how an organization can use them to enforce an overall security policy throughout various databases. SECURITY CONCEPTS Basic computer security concepts require that an information system be able to identify and controlcritical aspects such as: Who the authorized users are (identification and authentication). What users should have access to (object access controls). 5 What types of operations users can perform on those objects (also part of object access control). types of activities have occurred (e.g., the ability to maintain accountability via auditing). Extended security concepts further address issues such as data and system integrity, reliability and availability, further conditional access controls (such as for special business rules), and assurance that all the above are operating properly and consistently. What Strong User Authentication For Accountability The basis for system security is strong user identification and authorization; if you cannot establish, with certainty, who a user is, then it is impossible to hold users accountable for their actions, and to ensure that users only have access to the data they need to do their jobs, but no more. Many databases supports a number of choices for user authentication: Database-based (by password, or by industry-standard X.509 certificates), host-based (by the underlying operating system), or third-party based (network authentication services, smart cards and biometric devices). Database Password-Based Authentication In database password-based authentication, each user must have a username and password. To connect to the database, a properly-authenticated operating system user must supply his database username and password. However, password-based schemes, to be secure, must ensure that passwords can be changed regularly, are of sufficient complexity, and are not easily guessed. For example Informix provides built-in, robust password management facilities to enable administrators to: Enforce minimal password length. Ensure password complexity (i.e., that passwords contain symbols or numbers as well as alphabetic characters). Disallow passwords that are easily guessed words, such as a user’s last name or company name. Administrators can prevent password-guessing attempts by locking accounts automatically after a number of incorrect password entries; an administrator can also lock an account “on the fly” if he detects a security breach. Passwords can be forced to expire over any period (every ninety days, for example) to ensure that users change their passwords regularly. Administrators can also prevent passwords from being reused, either permanently, or for a specified period of time. Password preferences may be assigned to an entire enterprise, groups of users, or individual users by means of user profiles, providing complete flexibility for an organization to implement desired security preferences. In distributed systems, a password passing from a client to server may pose a security risk. If the password is passed in clear text (unencrypted), any eavesdropper snooping for data can also read the password. Host-Based Authentication Database identification and authentication facility also allows you to specify that users should be authenticated by operating system mechanisms, consolidating username and password information and allowing users to enter an application without having to specify a username and password. 6 Third Party-Based Authentication Database security, supports multiple third-party authentication technologies, such as Kerberos, DCE, smart cards and biometric authentication (Identix), as well as integration with Bull’s ISM and ICL’s Access Manager. These hardware and software technologies verify a user’s identity in a stronger way than passwords. For example, SecurID cards provide twofactor authentication — something you have (the card) and something you know (a personal identification number (PIN)). Many of these network authentication services also provide single signon for users. Users authenticate themselves once to a central service (e.g., Kerberos), and may then connect to multiple applications or databases without providing additional credentials. Authentication Through a Middle Tier In applications which use a heavy middle tier, such as a transaction processing monitor, it is important to be able to preserve the identity of the client connecting to the middle tier. Yet, one advantage of a middle tier is connection pooling, to allow multiple users to access a data server without each of them needing a separate connection. In such environments, you need to be able to set up (and break down) connections very quickly, without the overhead of establishing a separate, authenticated database session for each connection. Mutual Authentication For Secure Distributed Computing While user authentication is important, it is equally important in distributed systems to ensure that a number of network principals including application servers, web servers, and database servers are who they say they are. For example, database A, attempting to connect to database B, needs assurance that database B really is database B, just as database B needs to be sure of database A’s identity. For example, an AP application might need to retrieve information about employees from the HR database in order to perform expense reporting processing. Not only could the AP and HR databases mutually authenticate, but the HR database could grant access to only those users in AP who need to query the employee information in order to process expense reports. Privileges That Protect Data A user can only perform an operation on a database object (such as a table or view) if that user has been authorized to perform that operation. A privilege is an authorization to perform a particular operation; without privileges, a user cannot access any information in the database. To ensure data security, a user should only be granted those privileges that he needs to perform his job functions. This is known as the principle of “least privilege.” System Privileges A system privilege authorizes a user to perform a specific operation. One example of a system privilege is the CREATE USER privilege, which allows a user to create a database username; another is SELECT ANY TABLE, which allows a user to query any table in the database. For example Oracle8i provides over 100 different system privileges, such as permission to connect to 7 the database and permission to change a table's attributes. A privilege can be granted to a user “with ADMIN option.” This allows the grantee authority to further grant and revoke privileges from other users. Object Privileges An object privilege authorizes a user to perform a specific operation on a specific object. For example, you can grant a user the ability to select from the EMP table by granting him the SELECT privilege on that table. With this privilege, the user can query the EMP table but cannot query any other tables in the database nor update the EMP table. You can also grant object privileges “with GRANT option.” This allows the grantee authority to further grant the object privilege to other users. In databases exists a varying number of object privileges per object type, such as permission to insert into a table and permission to select from a sequence. Views To Customize Access To Information While privileges allow you to control which operations a user can perform on database objects, views allow you to further limit the data that a user can access within these objects. A view is a content- or context-dependent subset of one or more tables (or views). For example, you can define a view that allows a manager to view only the information in the EMP table that is relevant to employees in his own department. The view may contain only certain columns from the base table (or tables), such as the example below, in which only the employee name and salary information are contained in a view. Content may also be limited to a subset of the rows in the base table, such as a view of the employee table which contains records for employees assigned to department 20. Similarly, you can define a view that allows payroll clerks to update payroll information on certain days of the month only. This flexibility allows you to restrict the data that a user can see or modify to only that data that he truly needs to access, at only the times that access is appropriate. This allows you to enforce your unique business rules within the database. View can be created with additional business considerations in mind. For example, views may be created “with check option,” which enforces that inserts and updates performed through the view must be accessible by the view query itself. This helps ensure data consistency from the user’s viewpoint. 8 Figure 1: A View Controlling Salary Access By Manager Stored Procedures To Customize Operations On Data It is often desirable to encapsulate business rules into stored procedures for several reasons. One of them is that, if security is written in the front-end application, the user can bypass all the security of the application if the user has direct privileges in the database. Another reason is that stored procedures help enforce least privilege as well as business integrity, by ensuring that users have the minimum privileges they need to perform their job functions, and only access data according to well-formed business rules. You can define a procedure so that it performs a specific business function, then grant a user the ability to execute that procedure without granting him any access to the objects and operations that the stored procedure uses. This prevents users from exercising privileges to perform operations outside of the context of the pre-defined authorized procedure. For example, the INCREASE_PAY stored procedure illustrated in Figure 2 allows managers to increase their employees' salaries. By executing this stored procedure, managers are allowed to increase employees' salaries by no more than 15 percent. While you could have just granted these managers the ability to update the EMP_SALARIES view, the stored procedure allows you to enforce your business rules within the database by restricting managers from giving their employees increases that violate these rules. Note that the managers need not have access to the EMP_SALARIES view in order to execute this procedure; because a stored procedure performs an explicitly defined operation, users only need permission to execute this procedure, not permission to access the underlying objects. This prevents users from accessing the procedure's underlying objects outside the context of your business rules. 9 Figure 2. Stored Procedure To Update Salary The Virtual Private Database Giving customers and partners direct access to mission-critical systems over the Internet may yield reduced cost, better service, and more timely information, but it also offers new challenges. Organizations must not only keep data safe from prying eyes, but they must segregate data appropriately, often to the level of individual customers or users. Also, many companies are interested in providing Internet “hosting” environments, with a well-designed and well-managed computing infrastructure, but must keep the data of each “hosted” corporation separate and secure from each other, while allowing customizations and data access methods which best meet their individual needs. Within the Intranet, organizations continue to struggle with traditional access control problems, such as the classic “application security problem”: when access control is embedded in an application, users who have access to ad-hoc queries or reporting tools bypass the security mechanisms of the application. Oracle8i addresses these diverse security needs by introducing the Virtual Private Database serverenforced, flexible, fine-grained access control, together with a secure application context, enabling multiple customers and partners to have secure direct access to mission-critical data. The Virtual Private Database enables, within a single database, per-user or per-customer data access with the assurance of physical data separation. For Internet access, the Virtual Private Database can ensure that online banking customers see only their own accounts, and that web storefront customers see their own orders only. Web hosting companies can maintain multiple companies’ data in the same Oracle8i database, while allowing each company to see only their own data. The Virtual Private Database enables fine-grained access control by associating one or more security policies with tables or views. Direct or indirect access to a table with an attached security policy causes the data server to consult the policy function. The policy function returns an access 10 condition known as a predicate (a WHERE clause) which the data server appends to the SQL statements, dynamically modifying the user’s data access. For example, if an organization’s security policy is that customers can see their own orders, a user issuing the following query: SELECT * FROM orders; could have her query transparently and dynamically rewritten by Oracle8i as follows: SELECT * FROM orders WHERE cust_num = SYS_CONTEXT (‘userenv’, ‘session_user’); Flexible Implementation The Virtual Private Database offers flexible policy implementation, to allow customers to finetune their security policies based on their specific needs: Attach security policies to tables or views. Many applications already use views for security reasons, or to enforce business rules. Attaching security policies to either views or tables allows organizations to add fine-grained access to their existing applications without completely rewriting them. Add security policies to only those tables or views where it is needed. For example, to implement the policy ‘customers can see only their own orders,’ one need only add security policies to the ORDERS and ORDER_LINES table. Enable different policies for different types of access, (e.g., select, insert, delete, and update). For example, you could implement a policy on the EMP table that enables users to query name and address information for any employee, but allows them to update only their own records. Add multiple policies per table. For example, a hosting application may allow different companies’ HR systems to enable different access control conditions. Companies can add additional security policies on top of the base HR application security policy (e.g., that data access is limited by company), without affecting the base security enforcement and data separation policies. Strong, Server-Enforced Security The Virtual Private Database provides the following benefits: Lower Cost of Ownership. Organizations can reap huge cost savings by building security once, in the data server, instead of implementing the same security in each application that accesses data. Eliminate the “Application Security Problem.” Users can no longer bypass security policies embedded in applications because security policies are associated directly with data. The same security policy is automatically enforced by the data server, no matter how a user accesses data, whether through a report-writing tool, a query, or through an application. Enable Applications You Could Never Build Before. In the past, organizations could not give customers and partners direct access to their production systems, because there was no way to secure the data. Internet hosting companies could not have data for multiple companies reside in the same data server, because they could not separate each company’s data. Now, all these scenarios are possible, because the Virtual Private Database gives you server-enforced, finegrained access control with the assurance of physical data separation. 11 Triggers To Customize Functionality Like stored procedures, database triggers are user-defined sets of PL/SQL or Java statements, also stored in compiled form. While users explicitly execute stored procedures, database triggers are automatically executed (or "fired") within the data server based on pre-specified events. A trigger is defined to execute either before or after an insert, update, or delete, so that when that operation is performed on that table, the trigger automatically fires. Four types of triggers are available for definition on a table: BEFORE statement, BEFORE row, AFTER statement, and AFTER row. Statement triggers are executed once regardless of the number of rows affected by the triggering statement. Row triggers are fired once for each row affected by the triggering statement. The security benefits of database triggers are similar to those of stored procedures: more granular access control and consistent rule enforcement. In addition to those benefits, database triggers allow you to perform behind-the-scenes operations based on user activity. For example, you could define a BEFORE UPDATE trigger on the EMP table that automatically records the existing values in the table before a user updates them. That way, you have a record of both the old and new values in any updated rows. You can also define multiple triggers of each type (statement or row) on a single table, to audit several different types of operations. Triggers can be used to apply security rules to the database. 12 Prednášky SRBD Relačná algebra (RA) Výber (select) Projekcia (project) Zjednotenie (union) Množinový rozdiel (set difference) Karteziánsky súčin (Cartesian product) Premenovanie (rename) Rozširujúce operácie RA Zovšeobecnená projekcia (generalized projection) - rozširuje operáciu projekcie tak, že umožňuje použitie použitie aritmetických funkcií v zozname atribútov projekcie Vonkajšie spojenie (outer join) - vykoná operáciu spojenia a k výsledku pridá n-tice z jednej relácie, ktoré neodpovedajú n-ticiam v druhej relácií - využíva hodnotu null, ktorá znamená, že hodnota je neznáma alebo neexistuje Agregačné funkcie (aggregate functions) - agregačný operátor berie kolekciu hodnôt a vracia jednu hodnotu ako výsledok AVG (priemerná hodnota) MIN (minimálna hodnota) MAX (maximálna hodnota) SUM (súčet hodnôt) COUNT (počet hodnôt) SELEKCIA - σ Vyberie riadky splňujúce podmienku Syntax: sselekčná podmienka(meno relácie) Relácia, ktorá je výsledkom selekcie, má tie isté atribúty ako relácia pôvodná Podmienka použitá v selekcii môže byť tvaru: Operátor porovnania je z množiny {<,=,>, ³, £ ,¹} konštanta je z domény daného atribútu. Podmienky môžu byť ľubovoľne spájané pomocou AND, OR, NOT PROJEKCIA - Ð Zobrazí stĺpce uvedené v zozname atribútov 13 Syntax: Ðzoznam atribútov(meno relácie) Množinové operácie – zjednotenie, prienik, rozdiel relácií – dajú sa použiť na kompatibilné relácie SPOJENIE Používa sa, keď potrebujeme skombinovať súvisiace záznamy z dvoch relácií do jediného záznamu Equi – Join Outer – Join Self – Join Natural - Join operácia PROJEKCIA –> vyberie stĺpce - operácia SELEKCIA –> vyberie riadky - operácia SPOJENIE –> prevádza spojenie tabuliek cez zvolenú položku alebo skupinu položiek Systémy s týmito zakladnými operáciami nazývame minimálne relačné Dotazovací jazyk, ktorý umožňuje realizovať všetky operácie relačnej algebry(aj: súčin, prienik, zjednotenie, rozdiel) – relačne úplný Normalizácia Poskytuje metodiku návrhu usporiadania informácií v databáze Odstránenie zbytočnej duplicity uložených údajov a pritom zachováva možnosť vhodného spájania do podoby potrebnej pre ďalšie spracovanie A,B sú atribúty relácie R => B je funkčne závislý na A, pokiaľ v čase existuje ku každej hodnote atribútu B najviac jedna hodnota atribútu A A, B, C sú atribúty relácie R. Ak B je funkčne závislý na A a C je funkčne závislý na B a zároveň platí, že A funkčne nezávisí na B => C je tranzitívne závislý na A Prechod od nižšiej normálnej formy k vyššej prevádzame operáciou PROJEKCIA Prechod od vyššej normálnej formy k nižšej prevádzame operáciou SPOJENIE(JOIN) Pre vkladanie, rušenie a aktualizáciu je vhodná 3NF apre dotazy 1NF, preto pri formulácii dotazu dochádza často k operácii spojenia Vo fáze návrhu logickej schémy relačnej bázy dat je potrebné mať všetky tabuľky v 3NF. Neskoršie zmeny štruktúry tabuliek vedie k nutnosti zmeny databázovej aplikácie Transakčné spracovanie Na SRBD sú kladené dve dôležité požiadavky • Chrániť dáta organizované pod daným SRBD 14 • Poskytnúť korektný a rýchly prístup väčšiemu počtu užívateľov Tieto požiadavky vedú k dvom funkčným komponentám SRBD : • komponenta riadeného súbežného spracovania (concurency control) • komponenta zotavenia z chýb (recovery) Čo je to transakcia? Transakcia je istá postupnosť, alebo špecifikácia postupnosti akcií, ako sú čítanie, zápis, výpočet, s ktorou sa narába ako s jedným celkom (napr.. niekoľko aktualizačných operácii alebo dotazov v SQL). Aby sa užívateľovi transakcia javila ako jedna atomicka operácia, sú nutné príkazy : • COMMIT - po jeho vykonaní sú teda výsledky transakcie trvalé a viditeľné • ROLLBACK - zaisťuje návrat do stavu databázy pred započatím transakcie. Jeho použitie vyžaduje existenciu tzv.. žurnálu na nejakom stabilnom pamäťovom médiu. Žurnál obsahuje históriu všetkých zmien databázy v istej časovej perióde. Transakcia sa môže dostať do jedného z piatich stavov : • aktívny (A) - ide o stav od počiatku vykonávania transakcie, • čiastočne potvrdený (PC) - ide o stav po vykonaní poslednej operácie transakcie, • chybný (F) - ak sa stane, že v normálnom priebehu transakcie sa nedá pokračovať, • zrušený (AB) - nastane po skončení operácie ROLLBACK, tj. uvedenie databázy do stavu pred transakciou, • potvrdený (C) - nastane po úspešnom zakončení, tj. Po potvrdení operácie COMMIT. Vlastnosti ACID : • • • • atomicita - transakcia sa tvári ako jeden celok, musí sa buď vykonať celá alebo vôbec nie, konzistencia - transakcia transformuje databázu z jedného konzistentného stavu do iného stavu, nezávislosť - transakcie sú nezávislé, tj. Dielčie efekty transakcie niesu viditeľné inými transakciami, trvanlivosť - efekty úspešne ukončenej (potvrdenej) transakcie sú uložené do databázy Transakčné modely Transakčný model je charakterizovaný štruktúrou transakcie a štruktúrou objektov, na ktorých transakcia operuje. Transakčné modely špecifikujú (okrem iného) užívateľské rozhranie k transakcii ako takej. Štruktúra objektov : • • jednoduché objekty - podstatné na tomto druhu objektov je,že sa neberie do úvahy ich sémantika. abstraktný dátový typ (ADT) - použitie ADT znamená použitie abstraktných operácií zviazaných s objektmi. 15 • • zložité objekty - objektovo-orientované SRBD predstavujú objekty so štruktúrou, ktorých komponentou môže byť opäť objekt. aktívne (a pasívne) objekty - patria tzv. aktívnym databázam. Štruktúra transakcie • • • • ploché transakcie - tieto transakcie majú jednoduchý bod štartu a jednoduchý bod ukončenia. uzavreté hniezdené transakcie - zahrňujú ďalšie transakcie so svojimi bodmi štartu a ukončenia. Potvrdzovanie podtransakcií sa deje zdola-nahor. otvorené hniezdené transakcie - u týchto transakcií vzniká požiadavka na atomicitu koreňovej transakcie. Čiastočné výsledky môžu byť viditeľné mimo transakciu ktorá ju objednáva, pracovné toky - sú modelované pomocou aktivít, úloh, z hľadiska transakčného spracovania pomocou uzavretých transakcií. Paralelné spracovanie transakcií. Transakcie môžu byť v užívateľských aplikačných programoch vykonávané paralelne. Je zrejme a z hľadiska využitia zdrojov žiaduce, že postupnosti transakcii môžu byť spracúvané paralelne rôznymi spôsobmi. Predpokladajme transakcie T1 a T2 dané postupnosťami {T11,...,T1n}, resp. {T21,...,T2m}. Stanovené poradie vykonávania akcií viacerých transakcií v čase nazývame rozvrh. Problémy s paralelným spracovaním transakcii. Prekrývanie operácií transakcií nemôže byť ľubovoľné. strata aktualizácie dočasná aktualizácia (pri chybe systému) nekorektné použitie agregačnej funkcie neopakovateľné čítanie Transakcia T1 používajúca daný kurzor sa snaží znovu prečítať riadok, ktorý už raz čítala pred tým, ten však už obsahuje iné hodnoty (alebo neexistuje) vďaka aktualizácii transakcie T2 , ktorá prebieha paralelne fantóm Transakcia T prečíta množinu riadkov (jeden príkaz SELECT) a spracováva ich. Medzi tým niektoré z týchto riadkov zmení transakcia T’ (DELETE alebo INSERT). Keď použije T ten istý príkaz, obdrží inú množinu riadkov. Sériové a usporiadateľné rozvrhy Dôležitými pojmami pre paralelné spracovanie sú sériovosť či usporiadateľnosť. Sériové rozvrhy zachovávajú operácie každej transakcie pohromade. Pre N transakcií teda existuje N! rôznych sériových rozvrhov. Pre získanie korektného výsledku však môžeme použiť i rozvrh, kde sa operácie navzájom prekrývajú. Prirodzenou požiadavkou na korektnosť je, aby efekt paralelného spracovania transakcií bol ten istý, ako keby boli transakcie vykonané v nejakom 16 sériovom rozvrhu. Ak predpokladáme, že každá transakcia je korektný program, mal by viesť výsledok sériového spracovania ku konzistentnému stavu. O SZT, ktorý zaručuje túto vlastnosť sa hovorí, že zaručuje usporiadateľnosť.Aby sme mohli pre nejaký rozvrh určiť jeho korektnosť, stačí aby sme ukázali, že je v nejakom zmysle ekvivalentný nejakému sériovému rozvrhu. ekvivalencia vzhľadom ku konfliktom Ak máme rozvrhy S1 a S2 pre množinu transakcií T = {T1,...,Tn}, potom S1 s S2 sú ekvivalentné (vzhľadom ku konfliktom), keď sú v oboch rozvrhoch všetky dvojice konfliktných operácií vykonávané v rovnakom (časovom) poradí. pohľadová ekvivalencia Ak máme rozvrhy S1 a S2 pre množinu transakcií T = {T1,...,Tn}, potom S1 s S2 sú pohľadovo ekvivalentné, keď sú splnené tri podmienky: • Ak v jednom rozvrhu je počiatočná hodnota A čítaná v transakcii Ti, potom to isté musí platiť i v druhom rozvrhu. • Ak sa v jednom rozvrhu vyskytuje READ(A) v transakcii Ti a táto hodnota vznikla z WRITE(A) v transakcií Tj, potom to isté musí byť zachované i v druhom rozvrh. • Ak sa v jednom rozvrhu zapisuje konečná hodnota A v transakcii Ti, potom to isté musí platiť i v druhom rozvrhu. Konfliktová usporiadateľnosť Zostrojíme precedenčný graf rozvrhu, ktorého uzly sú transakcie a hrany (Ti, Tj) sú definované splnením jednej z nasledujúcich podmienok: • Ti volá WRITE(A), pred tým ako Ti volá READ(A) • Ti volá READ(A), pred tým ako Ti volá WRITE(A) • Ti volá WRITE(A), pred tým ako Ti volá WRITE(A) pre nejaký atribút A z obidvoch transakcií. Spracovanie dotazov (Query Processing ) Fázy spracovania dotazov Fáza dekompozície: snímanie , syntaktická analýza a sémantická kontrola, normalizácia, simplifikácia, reštrukturalizácia, verifikácia Fáza optimalizácia Fáza generovania cieľového kódu Fáza realizácie Optimalizácia • • Heuristická (Heuristics): preusporiadava dotazy vo vykonávacom pláne Podľa výpočtu cenových nákladov (cost estimation): založená na výpočte pravdepodobnosti cenového ohodnotenia jednotlivých stratégií 17 Fázy optimalizačného procesu 1. Prevod dotazu do interného formátu jazyky pre manipuláciu s dátami (DML languages) sú vhodné pre ľudskú interpretáciu, ale nie sú vhodné pre počítačové spracovanie /málo matematiky / jazyk používaný v tejto internej reprezentácii musí byť prinajmenšom taký výrazový ako jazyk v ktorom je písaný pôvodný dotaz predpokladáme, že relačná algebra je prostriedkom interného formátu, pomocou ktorého môžeme celý proces optimalizácie analyzovať detailnejšie 2. Prevod internej reprezentácie na kánonický tvar v tejto fáze je nad dotazom vykonané množstvo transformácií tieto transformácie nesmú zmeniť sémantiku dotazu, jednoducho hľadajú ekvivalentné dotazy, ktorých realizácia je efektívnejšia a výkonnejšia ako dotaz pôvodný tieto transformácie sa zvyčajne nazývajú Ekvivalenčné pravidlá pre operácie relačnej algebry 3. Výber vhodného kandidáta pre spracovanie procedúr Kánonický tvar zvyčajne môže realizovaný rôznymi sôsobmi v závislosti podľa toho ako sú informácie v systéme uložené nízkoúrovňové špeciálne množinové operácie (selekcia, projekcia, join...) sú asociované sadou preddefinovaných implementačných procedúr. tieto procedúry sa obmieňajú podľa typu operácie a atribútov, ktoré sú obsahujú. každá procedúra je popísaná funkciou pomocou ktorej je možné vypočítať náklady spojené s činnosťou každej operácie (rôzne procedúry môžu byť vykonávané podľa rôznych cenových nákladov) 4. Generovanie vykonávacích plánov a výber toho najlacnejšieho z nich pretože, nad každým dotazom je zvyčajne vykonané množstvo operácií, a každá operácia môže byť implementovaná rôznymi spôsobmi, je tam aj množstvo možných kombinácií týchto operácií, ktoré dávajú konečný výsledok. všeobecne povedané, v tejto fáze tam bude príliš veľa možných plánov asociovaných s komplexným dotazom no nieje možné brať do úvahy všetky z nich. na základe vnútorných kritérií, len niektoré z celkových cien plánov pre riešenie dotazu sú zhodnotené. Optimalizátor si potom vyberie ten plán ktorý má najnižšiu cenu. Ekvivalenčné pravidlá zahrňujúce špeciálne množinové operácie 1. Kaskáda/Kompozícia selekcií 2. Komutatívnosť selekcií 3. Kaskáda projekcií 4. Kombinácia selekcie, karteziánskeho súčinu a Theta Join-u 5. Komutatívnosť selekcie a projekcie 18 6. Komutatívnosť Theta-Join operácií 7. Asociatívnosť natural join operácií 8. Komutatívnosť projekcie a Theta-Join-u Ekvivalenčné pravidlá zahrňujúce tradičné množinové operácie 1. Asociatívnosť operácií karteziánsky súčin, prienik, zjednotenie a rozdiel 2. Komutatívnosť operácií karteziánsky súčin, prienik, zjednotenie 3. Komutatívnosť selekcie a operácií prienik, zjednotenie alebo rozdiel 4. Komutatívnosť projekcie a zjednotenia Univerzálne pravidlá pre optimálne transformácie 1. Skoré uskutočnenie selekcií a projekcií 2. Kombinácia karteziánskeho súčinu s následnou selekciou na operácii Theta-Join 3. Použitie asociativity binárnych operácií na preusporiadanie listových uzlov tak, aby listové uzly s najviac obmedzujúcimi selekciami boli realizované skôr 4. Jednoduché podvýrazy počítať iba raz Indexácia Rýchly a efektívny prístup k položkámsúboru na základe niektorého z polí položky Ukladanie indexov: sekvenčný súbor (jednoúrovňové indexy) stromy (viacúrovňové indexy, B-stromy) Vlastnosti indexov: clustered verzus unclustered dense verzus sparse primary and secondary logical and physical Uchovávanie indexov: prehľadávacie stromy B-stromy Data Dictionary – Systémový Katalóg (SK) Jedna z najdôležitejších častí databázy je systémový katalóg. Je to množina (skupina) read-only tabuliek, ktoré poskytujú informácie o všetkých databázových objektoch 19 Systémový Katalóg obsahuje: Definície všetkých objektov v DB (tabuľky, pohľady, indexy, clustre, synonymá, sekvencie, procedúry, funkcie, triggre atď.) Koľko miesta je alokovaného a práve používaného objektmi DB Default hodnoty pre stĺpce Informácie o referenčnej integrite Mená DB používateľov Práva a role, ktoré boli používateľovi priradené Evidenčné informácie kto a kedy pristúpil do DB, ktoré dáta boli zmenené a pod. Iné všeobecné informácie o DB Štruktúra Systémového Katalógu Základné tabuľky (Base tables) – Udržiavajú informácie o prepojení DB – Zápis je možný len databázou – Priamy prístup používateľov k týmto tabuľkám je len výnimočný – Dáta v týchto tabuľkách sú kryptované Používateľsky prístupné pohľady (User-accesible views) – Sumarizujú a zobrazujú informácie uložené v Base Tabuľkách Systémového Katalógu – Dekódujú dáta kryptované v Base Tabuľkách na používateľovi užitočnejšie informácie Ako sa používa Sys. Kat. DB pristupuje do SK aby našla informácie o používateľoch, DB objektoch a štruktúrach uloženia DB modifikuje SK zakaždým spustením DDL príkazu Každý používateľ môže používať SK ako read-only referenciu pre získanie informácií o DB Ako DB používa SK Public(Verejné) synonymá pre pohľady(Views) SK – DB vytvára veľa pohľadov SK tak aby ich používatelia mohli vhodne používať – Názvy DB objektov by si používatelia nemali voliť tie isté ako sú synonymá v SK Kešovanie (Caching) SK – Väčšina dát sa kešuje do SGA (cache SK) – Všetky často pristupované informácie zo SK sú uložené v pamäti (používa sa LRU algoritmus) Iné programy a SK – Iné programy mimo DB môžu používať pohľady SK – Je lepšie používať Public synonymá ako priamo tabuľky SK Pridávanie nových objektov od SK – Je možné pridávať nové tabuľky alebo pohľady do SK – Pridávať môže len používateľ SYSTEM alebo použ. Tretej strany – Nikdy nevytvárajte tabuľky pre používateľa SYS!!! Mazanie objektov SK 20 – – Všetky operácie spracováva DB Žiadne dáta a objekty patriace SK nesmú byť menené alebo mazané hocakým používateľom Ako používatelia používajú SK Pohľady SK slúžia všetkým používateľom SK je stále k dispozícii ak je DB on-line SK pozostáva zo súboru(množiny) pohľadov – Pohľady sa od seba líšia prefixom: USER – pohľady používateľa (to čo vlastní 1 user) ALL – rozšírený používateľský pohľad DBA – pohľad DB administrátora – Stĺpce v pohľadoch sú identické okrem: Pohľady z prefixom USER vylučujú stĺpce OWNER (vlastník) Niektoré pohľady DBA majú dodatočné stĺpce vhodné iba pre DB administrátorov Pohľady v SK Pohľady s prefixom USER – Referujú do používateľovho prostredia – Zobrazujú len riadky vzťahujúce sa k používateľovi – Obsahujú stĺpce totožné s inými pohľadmi okrem stĺpca OWNER – Vrátia podmnožinu informácií pohľadov s prefixom ALL – Môžu obsahovať zostručnené informácie PUBLIC synonymá Pohľady s prefixom ALL – Referujú do celkového používateľského prostredia – Vracajú informácie o objektoch ku ktorým má používateľ prístup Pohľady s prefixom DBA – Zobrazujú globálny pohľad na DB – Prístupné len pre DB Administrátorov Dynamic Performance Tables Virtuálne tabuľky zaznamenávajúce aktivitu DB – Nie sú to skutočné tabuľky – Sú na nich vytvorené pohľady (fixed views) SYS vlastní dynamic performance tables – V_$ -> prefix pre dynamic performance tables – V$ -> prefix pre synonymá Fyzická organizácia 21 Primárna organizácia súborov Báza dát je množina údajov, ktoré logicky súvisia a majú určitú štruktúru. Pri štruktúre dát rozlišujeme dva pohľady na dáta: 1. fyzická štruktúra – jedná sa o štruktúru uloženia na pamäťovom médiu. V tomto prípade hovoríme o primárnej organizácii dát. V architektúre SRBD je prezentovaný internou schémou. 2. logický pohľad na údaje – logická štruktúra resp. organizácia údajov – je to ľudský pohľad na dáta, ich vlastnosti a vzťahy. V trojúrovňovej architektúre SRBD je reprezentovaný konceptuálnou schémou. 1. Fyzická štruktúra Dáta umiestnené v databáze musia byť fyzicky uložené na nejakom pamäťovom médiu. Tieto dáta SRBD spracováva. Sú dve hlavné kategórie pamäťových zariadení. 1. Primárna pamäť. Patrí sem hlavná pamäť (resp. operačná pamäť), rýchle cache pamäte. Dáta umiestnené v týchto pamätiach sú spracovávané priamo procesorom, umožňujú rýchly prístup k dátam, ale majú malú kapacitu. 2. Sekundárna pamäť. Patria sem magnetické disky, optické disky, magnetické pásky. Majú väčšiu kapacitu, sú lacnejšie a pomalšie ako primárne pamäte. Dáta umiestnené v týchto pamätiach nemôžu byť spracovávané priamo procesorom, najprv musia byť umiestnené do primárnej pamäti. Najčastejšou sekundárnou pamäťou pre databázy je magnetický disk. Má veľkú kapacitu, je pomerne stálou pamäťou oproti primárnym pamätiam. Veľmi dôležitou charakteristikou je umiestnenie veľkého množstva dát na disku, tzv. kapacita pamäťového média. Techniky uloženia dát na sekundárnej pamäti resp. na disku sú dôležité pre databázových návrhárov, databázového administrátora ako aj pre implementáciu SRBD. Disky sú zariadenia z náhodným prístupom. Hardware-ová adresa bloku je kombináciou čísla strany disku, čísla stopy na príslušnej strane a čísla bloku na príslušnej stope. Vstupno-výstupné operácie sa realizujú cez vyrovnávaciu pamäť. Základnou prenosovou jednotkou je blok, ktorého veľkosť je definovaná pri formátovaní disku. Celkový čas na lokalizáciu dát a prenos z určitého bloku je daný súčtom vyhľadávacieho času bloku, rotačným oneskorením čítacieho zariadenia a časom prenosu bloku. Požiadavka spracovania viacerých blokov je riešená paralelným spracovaním, a to buď interleavingom (striedaním) alebo simultánne. Interleaving je charakteristický pre jednoprocesorové systémy riadiace paralelné procesy. Simultánne spracovanie je možné v prípade viacprocesorovej jednotky, alebo ak existuje nezávislý vstupno-výstupný procesor. 2. Logická štruktúra Organizačné jednotky logickej štruktúry dát sú nasledovné: Položka (prvok, field, item) – najmenšia organizačná jednotka štruktúry dát, ktorá neobsahuje žiadne iné položky. Je charakterizovaná identifikátorom (menom) a typom. Skupina – množina položiek s jedným identifikátorom, prostredníctvom ktorého môžeme robiť ako s jedným celkom. Patrí sem aj opakujúca sa skupina. Napr. dátum sa skladá – deň, mesiac, rok; dieťa – meno, priezvisko – pre zamestnanca sa opakuje n-krát. 22 Veta (záznam, record, riadok tabuľky, tuple, entica) – zložená z položiek alebo skupín dát, ktoré sú v nejakom vzťahu s určitým objektom. Veta musí dávať sémantický význam. Súbor (file, table) – množina výskytov štruktúrne rovnorodých viet (viet jedného typu). Báza dát – komplex súborov a vzťahov medzi vetami súborov, vetami skupín a položkami Dáta sú zvyčajne umiestnené v záznamoch. Každý záznam pozostáva z množiny príbuzných dátových hodnôt alebo položiek, pričom každá hodnota je jeden alebo viac bytov a korešponduje s príslušným poľom v zázname. Záznamy zvyčajne popisujú entity a ich atribúty. Množina názvov polí a ich zodpovedajúce dátové typy vytvárajú definíciu typu resp. formátu záznamu. Dátový typ spojený s každým poľom špecifikuje typ hodnôt pre príslušné pole. Veľkosť jednotlivých typov závisí od implementácie. Špeciálne typy BLOB, CLOB ( Binary Large OBjects, Char Large Objects ) sú vhodné pre veľké neštruktúrované objekty, reprezentujúce obrázky, voľný text. Dáta sú umiestnené na iných blokoch ako sú záznamy. V záznamoch sa nachádza len smerník na príslušnú oblasť.