Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Results of the survey and relational dbs Fall 2011 The results • More weight on project • More hands-on stuff • But the underlying formalisms and technological concepts are important • Programming in SQL • Post-relational technology An early extension: UDTs • Enumerated sets • We will see later that this has been an area of dramatic advances Foreign Keys • • • • • • To minimize “meaningless” joins Root cause of problems: value semantics Enhancing the semantics of a schema “Advice” from the designer Warning if you are not using a PK (or CK) and FK pair Question: if you delete the tuple with the PK, what happens to the tuple with the FK? (set null? Leave it?) • Question: if you change the value of the PK, what happens to the tuple with the FK? (change it?) Triggers: generic integrity constraints • • • • • • After (SQL1) If (SQL2 boolean) Then (SQL3) Or After, When, implied The After tells the system when to check (minimizes cost) The When or If sets the trigger The Then or (implied) dictates the corrective action This sort of thing can be used to “undo” transactions - later Views • • • • Run an SQL program with no updates Give the result a name Now you have a “view table” View tables can sometimes be updated Access control • Grant (rights) On (schema elements) To (class of users) With (grant option) • Does not mesh well with organizations with pre-existing security levels – in these cases, we use “mandatory” controls where you cannot update data below your level Real DBMSs • MySQL • free and old and minimal • extremely popular • PostgreSQL – free and made from Postgres, named inspired by MySQL • • • • more modern with great UDT capabilities and some XML capabilities growing in popularity (Postgres was named after Ingres, a first generation RDBMS.) • Microsoft SQL Server 2008 • commercial and constantly being updated • with full text search, extensive XML capabilities • Oracle • commercial and constantly being updated • with great multimedia, XML, and data warehousing (OLAP) capabilities RDBS GUIs • General purpose • Navicat • DBVis • SQL Razor • Targeted and vendor supplied • • • • MySQL workbench pgAdmin (postgres) SQL Server Management Studio Oracle SQL Developer • Targeted 3rd party supplied • Maestro for MySQL, PostgreSQL, Oracle, SQL Server GUI capabilities • • • • • Connecting to DBMSs Creating DBs Updating and querying DBs Administering DBs Building server code for websites (such as PHP that can read and write the tables) • But they are not meant as production interfaces MySQL Information Schema • This is a meta database that contains information on schemas, tables, columns, etc. • You can query but not update it Schema of Information DB The “MySQL” database • Used by administrator • Created when MySQL is installed • A primary purpose is to control user access rights • user – can the user connect to the database server? • db – what user can access what database? • tables_priv and columns_priv – user priviledges Performance schema • Maintains data used for performance tuning • Everything is an “event” • Execution of an SQL schema • A wait on the OS • Does not have to be activated • You can query it to find what is causing a wait How about a simple query… • select examplefield2 • from exampletable1 • where (examplefield1 = "Buzz") Class project • 60% of final grade • Each exam – 20% • Build an application • Use full text search • Or XML capabilities • Or multimedia capabilities