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
Extensible Storage Engine wikipedia , lookup
Entity–attribute–value model wikipedia , lookup
Open Database Connectivity wikipedia , lookup
Relational algebra wikipedia , lookup
Microsoft Jet Database Engine wikipedia , lookup
Concurrency control wikipedia , lookup
Functional Database Model wikipedia , lookup
Clusterpoint wikipedia , lookup
ContactPoint wikipedia , lookup
Introduction » How the course works ˃ ˃ ˃ ˃ Homework Project Exams Grades » prerequisite ˃ ˃ CSCI 6441: Mandatory prerequisite Take the prereq or get permission to take the course » Goals of the course ˃ ˃ ˃ Advanced topics Topics that are often not understood Realistic experience » Workload ˃ ˃ Heavy workload from the beginning Workload gets much heavier when project starts » Relational Principles ˃ Why relational, why it matters 2 » Weekly assignments » Assignments intended to be challenging and to make an important point » Assignments to be submitted by email to [email protected] » No attachments » Assignments due at the start of class » Late assignments are not accepted 3 » One project will involve the entire class » Work will be performed in functional teams » Every student must produce programs, will be graded on personally produced results » You will need to program using MySQL, PHP, and JavaScript; if you don’t know them start learning » You need to already have programming skills to complete this course 4 » The project will be a questionnaire generator and evaluator of results » One team will build the questionnaire builder and administrator » Another team will build the data analysis » Both will be built as WordPress plugins 5 » At the end of the project, each student will have access to all code written by the project » Any student (and myself) are free to do anything desired with the project code » You will receive an email asking you to agree to these stipulations » If you have a problem with this approach, please speak up after class tonight 6 » » » » Midterm and final Midterm will be closed book, in class Midterm date will not change Plan your schedule now: ˃ Be here for the midterm, no makeup exams ˃ Be here for the final, no makeup exams » Midterm will test your ability to work with concepts discussed in lecture and covered by homework 7 » A: Good quality graduate work, only minor issues with correctness » B: Acceptable graduate work, one or more major issues » C: Not acceptable graduate work, several serious issues » F: Does not show basic understanding 8 » CSCI 6441 is a mandatory prerequisite » Take it before this course » If you think you know the material, you need to explain it and get permission » First assignment is intended to clear this up 9 » Misunderstood topics ˃ ˃ ˃ ˃ Normalization Database design Performance SQL » Advanced topics ˃ ˃ ˃ Time in databases Translucency Performance » Realistic experience ˃ ˃ ˃ Realistic team size Accountability Emerging requirements » Current Developments ˃ ˃ ˃ Big data NOSQL Cloud Computing 10 » This course is for advanced students who want to learn a lot and want to work hard » If you’re not in a position to work hard, want to “slide by,” you are in the wrong course » If you don’t know how to program, don’t want to learn PHP, MySQL and Flex (on your own), this is not the course for you » But if you do want to be the database guru on a project at work, then stay in this course! 11 » Earlier database systems: hierarchies, networks as data models ˃ Relationships represented as physical connections ˃ Structure of relationship imbedded in applications » Relational: independent table as data model ˃ Relationships represented by equal values ˃ Structure of relationships invisible to applications 12 » Relational Database: a set of relations 13 » Relation: a set of ordered pairs » Ordered pair: a pair of values, such that interchanging the two values changes the meaning ˃ That is, <a,b>=<b,a> iff a=b and b=a » Specifying a relation by enumeration: R={<a,b>,<c,d>,<e,f>} ˃ This is a relation consisting of three ordered pairs. 14 » Ordered pairs can model more than two values through nesting: ˃ <a, b, c> == <<a,b>, c> ˃ <a, b, c, d> == <<a,b>, c, d> ˃ And so on » This extends the ordered pair so that it can model a tuple of any length » Now a relation starts to look like our notion of a file, with each tuple corresponding to our notion of a record 15 » Relation is a set of ordered pairs (modeling a set of tuples), so: » 1. exchanging order of values within a tuple changes the meaning of the tuple » 2. exchanging the order of tuples within a relation does not change the meaning of the tuple » 3. duplicate tuples are not allowed 16 » Now we build a database as a collection of independent relations, each describing instances of a single entity type » For example: ˃ Employee (employee#, job, salary, department) ˃ Department (department#, departmentname, location) (this is called schema notation) 17 » We need a way to insert data into the database, retrieve data from the database, and changes values that are stored in the database » We define a data language that can be used from any programming language to do that » The data language (SQL) has a lot of power and can save a lot of programming work if you understand it » You’ll have a brief chance to learn more about SQL in this course 18 » Database courses talk about normalization » Students usually don’t learn more than memorizing definitions » We will talk about Roberts’s Rules, plain English rules that give you a highly normalized database » Then we will talk about the normalization rules and what they mean in English » You will have the chance to really understand how to do this 19 » Time in databases is a complex issue » There’s the time something happened and the time it’s entered into the database » And there’s also the effective time, which may differ from those two times » And there’s the need to capture a history of previous values and roll back to it » We’ll examine all of these cases of time 20 » Typically the GRANT statement is used to give access to a database » A DBA enters the statement, and a user has access » But that’s not good enough if there may be thousands of people on the Web using a database » We’ll study translucency, a way to provide access control without GRANT statement 21 » Professional standards, like the work environment, will be followed: ˃ Arrive at class on time ˃ Submit homework on time ˃ Limit answers to 50 words 22 » » » » A class Web site has been established Everything about the class is on it Please read it When changes are made to the site a note will be sent to the class email list 23 » A class email list has been established » If you got the email sent today, then you’re on it » You can follow instructions on the Web site to enroll a different email address 24