IS 257 Fall 2006 - PowerPoint PPT Presentation

About This Presentation
Title:

IS 257 Fall 2006

Description:

University of California, Berkeley. School of Information. IS 257: ... Ticketmaster. Yahoo!. The US Census bureau. and many, many others. IS 257 Fall 2006 ... – PowerPoint PPT presentation

Number of Views:77
Avg rating:3.0/5.0
Slides: 56
Provided by: ValuedGate70
Category:

less

Transcript and Presenter's Notes

Title: IS 257 Fall 2006


1
SQL and Client Applications
  • University of California, Berkeley
  • School of Information
  • IS 257 Database Management

2
Lecture Outline
  • Review
  • Relational Operations
  • Relational Algebra
  • Relational Calculus
  • Introduction to SQL
  • Introduction to SQL and MySQL (continued)
  • Application Development in Access

3
Lecture Outline
  • Review
  • Relational Operations
  • Relational Algebra
  • Relational Calculus
  • Introduction to SQL
  • Introduction to SQL and MySQL (continued)
  • Application Development in Access

4
Relational Algebra Operations
  • Select
  • Project
  • Product
  • Union
  • Intersect
  • Difference
  • Join
  • Divide

5
Select
  • Extracts specified tuples (rows) from a specified
    relation (table).

6
Project
  • Extracts specified attributes(columns) from a
    specified relation.

7
Join
  • Builds a relation from two specified relations
    consisting of all possible concatenated pairs,
    one from each of the two relations, such that in
    each pair the two tuples satisfy some condition.
    (E.g., equal values in a given col.)

(Natural or Inner) Join
8
Outer Join
  • Outer Joins are similar to PRODUCT -- but will
    leave NULLs for any row in the first table with
    no corresponding rows in the second.

9
Join Items
10
Relational Algebra
  • What is the name of the customer who ordered
    Large Red Widgets?
  • Select large Red Widgets from Part as temp1
  • Join temp1 with Line-item on Part as temp2
  • Join temp2 with Invoice on Invoice as temp3
  • Join temp3 with customer on cust as temp4
  • Project Name from temp4

11
Relational Calculus
  • Relational Algebra provides a set of explicit
    operations (select, project, join, etc) that can
    be used to build some desired relation from the
    database.
  • Relational Calculus provides a notation for
    formulating the definition of that desired
    relation in terms of the relations in the
    database without explicitly stating the
    operations to be performed
  • SQL is based on the relational calculus.

12
SQL - History
  • Structured Query Language
  • SEQUEL from IBM San Jose
  • ANSI 1992 Standard is the version used by most
    DBMS today (SQL92)
  • Basic language is standardized across relational
    DBMSs. Each system may have proprietary
    extensions to standard.

13
Lecture Outline
  • Review
  • Relational Operations
  • Relational Algebra
  • Relational Calculus
  • Introduction to SQL
  • Introduction to SQL (continued)
  • Application Development in Access

14
SQL Uses
  • Database Definition and Querying
  • Can be used as an interactive query language
  • Can be imbedded in programs
  • Relational Calculus combines Select, Project and
    Join operations in a single command SELECT

15
SELECT
  • Syntax
  • SELECT DISTINCT attr1, attr2,, attr3 FROM
    rel1 r1, rel2 r2, rel3 r3 WHERE condition1 AND
    OR condition2 ORDER BY attr1 DESC, attr3
    DESC

16
SELECT
  • Syntax
  • SELECT a.author, b.title FROM authors a, bibfile
    b, au_bib c WHERE a.AU_ID c.AU_ID and c.accno
    b.accno ORDER BY a.author
  • Examples in Access...

17
SELECT Conditions
  • equal to a particular value
  • greater than or equal to a particular value
  • greater than a particular value
  • not equal to a particular value
  • LIKE term (may be other wild cards in other
    systems)
  • IN (opt1, opt2,,optn)
  • BETWEEN val1 AND val2
  • IS NULL

18
Relational Algebra Selection using SELECT
  • Syntax
  • SELECT FROM rel1 WHERE condition1 AND OR
    condition2

19
Relational Algebra Projection using SELECT
  • Syntax
  • SELECT DISTINCT attr1, attr2,, attr3 FROM
    rel1 r1, rel2 r2, rel3 r3

20
Relational Algebra Join using SELECT
  • Syntax
  • SELECT FROM rel1 r1, rel2 r2 WHERE r1.linkattr
    r2.linkattr

21
Sorting
  • SELECT BIOLIFE.Common Name, BIOLIFE.Length
    (cm)
  • FROM BIOLIFE
  • ORDER BY BIOLIFE.Length (cm) DESC

Note the square brackets are not part of the
standard, But are used in Access for names with
embedded blanks
22
Subqueries
  • SELECT SITES.Site Name, SITES.Destination no
  • FROM SITES
  • WHERE sites.Destination no IN (SELECT
    Destination no from DEST where avg temp (f)
    78)
  • Can be used as a form of JOIN.

23
Aggregate Functions
  • Count
  • Avg
  • SUM
  • MAX
  • MIN
  • Others may be available in different systems

24
Using Aggregate functions
  • SELECT attr1, Sum(attr2) AS name
    FROM tab1, tab2 ...
  • GROUP BY attr1, attr3 HAVING condition

25
Using an Aggregate Function
  • SELECT DIVECUST.Name, Sum(Priceqty) AS Total
  • FROM (DIVECUST INNER JOIN DIVEORDS ON
    DIVECUST.Customer No DIVEORDS.Customer No)
    INNER JOIN DIVEITEM ON DIVEORDS.Order No
    DIVEITEM.Order No
  • GROUP BY DIVECUST.Name
  • HAVING (((DIVECUST.Name) Like "Jazdzewski"))

26
GROUP BY
  • SELECT DEST.Destination Name, Count() AS Expr1
  • FROM DEST INNER JOIN DIVEORDS ON
    DEST.Destination Name DIVEORDS.Destination
  • GROUP BY DEST.Destination Name
  • HAVING ((Count())1)
  • Provides a list of Destinations with the number
    of orders going to that destination

27
Lecture Outline
  • Review
  • Relational Operations
  • Relational Algebra
  • Relational Calculus
  • Introduction to SQL
  • Introduction to SQL and MySQL (continued)
  • Application Development in Access

28
MySQL
  • The tag-line at http//www.mysql.com is
  • The world's most popular open source database
  • It is true, it is the most widely used open
    source database system with users and uses that
    range from individuals to major corporations and
    includes
  • Evite
  • Friend Finder Network
  • Friendster
  • Google (not for search though ?)
  • PriceGrabber.com
  • Ticketmaster
  • Yahoo!
  • The US Census bureau
  • and many, many others

29
MySQL myths
  • The MySQL.com web site contains a list of common
    myths and misconceptions about MySQL and refutes
    them
  • MYTH MySQL is a new, untested database
    management system
  • MYTH MySQL doesnt support transactions like
    other proprietary database engines (it is
    supposed to be in the version we use here)
  • MYTH MySQL is only for small, departmental, or
    web-based applications
  • MYTH MySQL doesnt offer enterprise-class
    features
  • MYTH MySQL doesnt have the type of support
    large corporations need
  • MYTH MySQL isnt open source any more

30
MySQL documentation
  • MySQL is available for download from MySQL.com
  • In addition that site has complete online
    documentation for the MySQL system and for the
    mysql client program in their Developer Zone
  • The online manuals are quite readable and have
    lot of examples to help you

31
SQL Commands
  • Data Definition Statements
  • For creation of relations/tables

32
CREATE Table
  • CREATE TABLE table-name (col_name1
    col_definition1 PRIMARY KEY, col_name2
    col_definition2,,col_nameN col_definitionN)
  • Adds a new table with the specified attributes
    (and types) to the database.

33
Access Data Types (Not MySQL)
  • Numeric (1, 2, 4, 8 bytes, fixed or float)
  • Text (255 max)
  • Memo (64000 max)
  • Date/Time (8 bytes)
  • Currency (8 bytes, 15 digits 4 digits decimal)
  • Autonumber (4 bytes)
  • Yes/No (1 bit)
  • OLE (limited only by disk space)
  • Hyperlinks (up to 64000 chars)

34
Access Numeric types
  • Byte
  • Stores numbers from 0 to 255 (no fractions). 1
    byte
  • Integer
  • Stores numbers from 32,768 to 32,767 (no
    fractions) 2 bytes
  • Long Integer (Default)
  • Stores numbers from 2,147,483,648 to
    2,147,483,647 (no fractions). 4 bytes
  • Single
  • Stores numbers from -3.402823E38 to 1.401298E45
    for negative values and from 1.401298E45 to
    3.402823E38 for positive values. 4 bytes
  • Double
  • Stores numbers from 1.79769313486231E308 to
    4.94065645841247E324 for negative values and
    from 1.79769313486231E308 to 4.94065645841247E324
    for positive values. 15 8 bytes
  • Replication ID
  • Globally unique identifier (GUID) N/A 16 bytes

35
MySQL Data Types
  • MySQL supports all of the standard SQL numeric
    data types. These types include the exact numeric
    data types (INTEGER, SMALLINT, DECIMAL, and
    NUMERIC), as well as the approximate numeric data
    types (FLOAT, REAL, and DOUBLE PRECISION). The
    keyword INT is a synonym for INTEGER, and the
    keyword DEC is a synonym for DECIMAL
  • Numeric (can also be declared as UNSIGNED)
  • TINYINT (1 byte)
  • SMALLINT (2 bytes)
  • MEDIUMINT (3 bytes)
  • INT (4 bytes)
  • BIGINT (8 bytes)
  • NUMERIC or DECIMAL
  • FLOAT
  • DOUBLE (or DOUBLE PRECISION)

36
MySQL Data Types
  • The date and time types for representing temporal
    values are DATETIME, DATE, TIMESTAMP, TIME, and
    YEAR. Each temporal type has a range of legal
    values, as well as a zero value that is used
    when you specify an illegal value that MySQL
    cannot represent
  • DATETIME '0000-00-00 000000'
  • DATE '0000-00-00'
  • TIMESTAMP (4.1 and up) '0000-00-00 000000'
  • TIMESTAMP (before 4.1) 00000000000000
  • TIME '000000'
  • YEAR 0000

37
MySQL Data Types
  • The string types are CHAR, VARCHAR, BINARY,
    VARBINARY, BLOB, TEXT, ENUM, and SET
  • Maximum length for CHAR and VARCHAR is 255
  • For longer things there is BLOB and TEXT

38
MySQL Data Types
  • A BLOB is a binary large object that can hold a
    variable amount of data.
  • The four BLOB types are TINYBLOB, BLOB,
    MEDIUMBLOB, and LONGBLOB. These differ only in
    the maximum length of the values they can hold
  • The four TEXT types are TINYTEXT, TEXT,
    MEDIUMTEXT, and LONGTEXT. These correspond to the
    four BLOB types and have the same maximum lengths
    and storage requirements
  • TINY1byte, BLOB and TEXT2bytes, MEDIUM3bytes,
    LONG4bytes

39
MySQL Data Types
  • BINARY and VARBINARY are like CHAR and VARCHAR
    but are intended for binary data of 255 bytes or
    less
  • ENUM is a list of values that are stored as their
    addresses in the list
  • For example, a column specified as ENUM('one',
    'two', 'three') can have any of the values shown
    here. The index of each value is also shown
  • Value Index
  • NULL NULL
  • 0
  • 'one 1
  • two 2
  • three 3
  • An enumeration can have a maximum of 65,535
    elements.

40
MySQL Data Types
  • The final string type (for this version) is a SET
  • A SET is a string object that can have zero or
    more values, each of which must be chosen from a
    list of allowed values specified when the table
    is created.
  • SET column values that consist of multiple set
    members are specified with members separated by
    commas (,)
  • For example, a column specified as SET('one',
    'two') NOT NULL can have any of these values
  • ''
  • 'one'
  • 'two'
  • 'one,two
  • A set can have up to 64 member values and is
    stored as an 8byte number

41
ALTER Table
  • ALTER TABLE table-name ADD COLUMN col_name
    col_definition
  • DROP COLUMN col_name
  • CHANGE col_name new_col_definition
  • Adds/removes a new column from an existing
    database table
  • Many other options for adding constraints (like
    NOT NULL, or PRIMARY KEY), etc.

42
INSERT
  • INSERT INTO table-name (attr1, attr4, attr5,,
    attrK) VALUES (val1, val4, val5,, valK)
  • Adds a new row(s) to a table.
  • INSERT INTO table-name (attr1, attr4, attr5,,
    attrK) VALUES SELECT ...

43
Creating a new table data from existing tables
  • Syntax
  • INSERT INTO tablename (attr1, attr2, attr3)
  • SELECT DISTINCT xattr1, xattr2, xattr3 FROM
    rel1 r1, rel2 r2, rel3 r3 WHERE condition1 AND
    OR condition2 ORDER BY attr1 DESC, attr3
    DESC
  • tablename has to previously exist for this to
    work in MySQL

44
DELETE
  • DELETE FROM table-name WHERE
  • Removes rows from a table.

45
UPDATE
  • UPDATE tablename SET attr1newval, attr2
    newval2 WHERE
  • changes values in existing rows in a table (those
    that match the WHERE clause).

46
DROP Table
  • DROP TABLE tablename
  • Removes a table from the database.

47
CREATE INDEX
  • CREATE UNIQUEFULLTEXTSPATIAL INDEX
    indexname indextype ON tablename (attr1
    ASCDESC, attr2 ASCDESC, ...) USING
    BTREEHASHRTREE

48
MySQL Demo
  • MySQL is on Harbinger AKA people
  • Setup via My.SIMS
  • Unix command for interactive use is mysql which
    needs to include -p to be prompted for the
    password, and optionally includes your database
    name, e.g.
  • mysql p ray
  • Note that the version on Dream is not the latest
    it is currently V. 5.0.45, latest is 6.0

49
Lecture Outline
  • Review
  • Relational Operations
  • Relational Algebra
  • Relational Calculus
  • Introduction to SQL
  • Introduction to SQL (continued)
  • Application Development in Access

50
Database Applications
  • Generally, end-users of database data probably do
    not want to learn SQL in order to access the
    information in the database
  • Instead, they would prefer to use a familiar PC
    or Web interface that uses the graphical
    conventions and behaviors that they are familiar
    with
  • Today we will look at PC style client
    applications using systems like Access
  • Next time we will look at Web-based systems

51
Query-by-Example
  • QBE was developed in the 1970s as a simpler to
    use interface for IBM mainframe databases
  • In QBE the user puts parts of what they want to
    get from the database into a form similar to what
    the output will look like
  • The Query Design View in Access is an example of
    QBE

52
Access Usability Hierarchy
API
VBA
MACROS
Functions/Expressions
Objects Tables, queries Forms, Reports
From McFadden Chap. 10
53
Examples
  • Access OBJECT level
  • QBE querying
  • Building Application interfaces
  • User wants point and click and forms to fill
    in, not a Query editing screen or wizard
  • How to build them
  • Drag and drop as in Access
  • Programming Languages
  • 4th Generation languages (more on these later)

54
The MS JET Database Engine
Adapted from Roman, Access Database Design and
Programming
55
Using Access for Applications
  • Forms
  • Reports
  • Macros
  • VBA programming
  • Application framework
  • HTML Pages
Write a Comment
User Comments (0)
About PowerShow.com