a e-r model for online flower store
DESCRIPTION
A E-R Model for Online Flower Store. Occasion code. Product Code. Description. description. Name. Unit price. Occasion. address. Picture. Products. N. Receivers. 1. M. M. 1. Customer ID. Orders. 1. Order Date. M. M. address. Order Number. Order lines. Buyers . M. - PowerPoint PPT PresentationTRANSCRIPT
A E-R Model for Online Flower Store
ProductCode
Description
Customer ID
Name
addressUnit price
Products Receivers
ProductCode
quantity
OrderNumber
Buyers
Customer ID
Credit card
Name
Order lines
1M
M M
1
1
Orders
Order Number
Order Date
Occasion
N
descriptionOccasion
code
Picture
address
M
M
1
A Simplified E-R ModelProduct
CodeDescription
Receiver Name
Receiver address
Unit price
Products
ProductCode
quantity
OrderNumber
Customer
Phone Number
Credit card #
Customer Name
Order lines
1M
M
M1
Orders
Order Number
Order Date
Occasion
N
Occasion code
Picture
addressM 1
Password
Simplified Tables PRODUCTS
Product_Code (Primary Key) Product_Name Unit_Price
USAGE Product_Code (Concatenated Key) Occasion (Concatenated Key)
CUSTOMER Customer_Name(Primary Key) Password Address Phone_Number
Tables ORDERS
Order_Number (Primary Key) Order_Date Customer Name (Foreign Key) Receiver Name Receiver Address Credit_Card_Type Credit_Card_Num Credit_Card_Expiry
ORDERLINE Order_Number (Concatenated Key) Product_Code (Concatenated Key) Quantity
Functional Dependence PRODUCT (3NF)
Product_Code Product Name,Unit Price USAGE (BCNF) CUSTOMER (3NF)
CustomerID Name, Address, password, phone number ORDERS (2NF)
Order Number CustomerID, Order Date, Receiver Name,… CreditCardNum CreditCardExpiry (transitive dependence)
Receiver Name Receiver Address (transitive dependence) ORDERLINE (3NF)
ProductNumber + OrderNumber Quantity
Transaction Processing
Transaction A transaction is a sequence of steps
that constitute some well-defined business activities
Transaction boundaries - the logical beginning and end of transactions
Commit changes for successful transactions
Reject changes for aborted transactions
Embedded SQL SQL can be embedded in host languages :
PL/I, COBOL, etc. SQL statements are prefixed by EXEC SQL Use EXEC SQL DECLARE to define tables,
views, and cursors In SQL, use prefix “:” to reference host
variables Return feedback information through
SQLCA
SQLCA SQLCA SQL Communication Area
SQLCODE 0 success, +100 no data found, <0 errorEXEC SQL INCLUDE SQLCA.....IF SQLCODE < 0 THEN....
Reference: C.J. Date, A Guide to DB2 , ch.10-11.
Example of Embedded SQL
DCL GIVENS# CHAR(5) ; DCL RANK FIXED BIN(15) ;DCL CITY CHAR(15) ;EXEC SQL DECLARE S TABLE (S# CHAR(5) NOT NULL, SNAME CHAR(20), STATUS SMALLINT, CITY CHAR(15) ;EXEC SQL INCLUDE SQLCA ;GET LIST (GIVENS# ) ;EXEC SQL SELECT STATUS, CITY INTO :RANK, :CITY FROM S WHERE S# = :GIVENS# ;IF SQLCODE = 0 THEN PUT SKIP LIST (RANK, CITY);
Example of Embedded SQL Update:
EXEC SQL UPDATE S SET STATUS = STATUS + :RAISE, WHERE CITY = ‘LONDON’ ;
Delete:EXEC SQL DELETE FROM S WHERE STATUS = NULL ;
Insert:EXEC SQL INSERT INTO S (S#, SNAM E, STATUS, CITY) VALUES(:NEWS#, :NEWSNAME, :NEWSTATUS,'LONDON’) ;
Using Cursors for Sequential Access
Declare a cursor and use it as a sequential file of the query resultsEXEC SQL DECLARE X CURSOR FOR SELECT S#, SNAME, STATUS FROM S WHERE CITY = :PCITY FOR UPDATE OF STATUS ;GET LIST (PCITY, GIVENINC);EXEC SQL OPEN X ;DO WHILE ( SQLCODE = 0 ) EXEC SQL FETCH X INTO :PS#, :PSNAME, :PSTATUS; PUT SKIP LIST(PSNAME, PS#, PSTATUS); EXEC SQL UPDATE S SET STATUS = STATUS + :GIVENINC
WHERE CURRENT OF X END;EXEC SQL CLOSE X ;
Integrity Control in SQL Change supplier # of supplier SX from SX to SY in
both tables S and SP.TRANEX: PROC OPTIONS (MAIN) : EXEC SQL WHENEVER SQLERROR GO TO UNDO; GET LIST(SX, SY); EXEC SQL UPDATE S SET S# = :SY WHERE S# = :SX; EXEC SQL UPDATE SP SET S# = :SY WHERE S# = :SX; EXEC SQL COMMIT; GO TO FINISH; UNDO: EXEC SQL ROLLBACK;FINISH: RETURN; END TRANEX;
Desired Transaction Properties
Atomicity -- All operations of a transaction must be completed. If not, the transaction is aborted.
Durability -- When a transaction is completed, the database reaches a consistent state which cannot be lost.
Serializability -- The concurrent transaction are treated as though they were executed in serial order.
Isolation -- The data used during the execution of a transaction cannot be used by a second transaction until the first one is completed.
Concurrent Transactions
When transactions are interleaved, errors will occur in updating unless the DBMS has features to prevent interference between transactions
CUSTA
BAL100
GET CUSTAA 100
GET CUSTAA 100
BAL : BAL - 50
A 50
BAL : BAL + 25
A 125
A 50
A 125
STORE CUSTA STORE CUSTA
1 2
34
Problems with Concurrent Transactions Lost updates - T2 is executed
before T1 is committed Uncommitted data -- T1 is rolled
back after T2 accessed the uncommitted data
Inconsistent retrievals - - T1 calculates some summary data while T2 is updating the data
Concurrency Control - the Scheduler
Establish the order in which the operations in concurrent transactions are executed without causing inconsistency
Locking Guarantee exclusive use of a data item to a current transaction
Timestamping Assign a global unique timestamp to each transaction. Execute operations in timestamp order.
Resource Locking Lock granularity
Database level, Table level, Page level, Row level, Field level
Lock Types Binary locks -- locked ,Unlocked Shared/Exclusive Locks -- Unlocked, Shared
(Read) lock, Exclusive (Write) lock Two-Phase Locking
A growing phase A shrinking phase
Deadlock Deadly embrace Deadlock prevention:lock all required
records at beginning of transaction Deadlock resolution:back out of one of
transactions and start againUser A
Lock X
Wait for Y
User B
Lock Y
Wait for X
X
Y
Optimistic vs. Pessimistic Locking Optimistic locking
Assume the majority of database operations do not conflict.
Process each transaction in three phases: read, validation, and write.
Less restriction, may repeat process Pessimistic locking
Assume the conflicts most likely will happen. Lock, process, and unlock. More restriction, no repeat process
Database Recovery Database may be damaged or lost because
of some system failure. The DBMS must provide mechanisms for restoring a database quickly and accurately after loss or damage.
System failures: machine failuresdisk head crashesprogram bugsincorrect operation
Database Recovery
Database(current)
Database(backup)
Databasechange
log
Transactionlog
DBMS
before image
after image
Basic Recovery Facilities Backup facilities
Provide periodic backup copies of the entire database Journalizing facilities
Maintain an audit trail of transactions and database changes
Checkpoint facilityPeriodically suspends all processing and synchronizes its files and journals
Recovery managerAllows the DBMS to restore the database to a correct condition and restart processing transactions
Recovery via Restore/Rerun Restore the latest backup copy Reprocess the day’s transactions (up to
the point of failure) against the backup copy of the database
Simple procedure Time to reprocess transactions may be
prohibitive Sequencing of reprocessed transactions
may be different from the original
Recovery via Roll Back/Roll Forward
Database
withchanges
Beforeimages
Databasewithoutchanges
Databasewithoutchanges
Databasewith
changes
Afterimages
Undo
Redo
New Old
Old(saved) NewRoll Forward
(Repeating Database Changes)
Roll Back(Removing Database Changes)
Recovery Strategies Aborted transactions (i.e. communication interruption)
Backward recovery Incorrect data
Backward recovery or add compensation transactions System failure (database is not damaged)
Restart from the most recent checkpoint before the system failure, roll forward.
Database destruction (database damaged)Restore backup copy.Forward recovery to the check point before the loss occurred. Reprocess transactions after the check point.
Security Control Security refers to the protection of
data against unauthorized disclosure, alteration, or destruction Physical security Password security Authentication schemas: biometric
devices, smart card
Security Control Views or subschemas User-defined procedures Authorization rules Audit trails Data encryption
Authorization Rules Grant select on Staff to User01
Revoke update on Staff from User02
Authorization rulesSubject
Salesdepartment
Ordertransactions
Object
Customerrecord
Customerrecord
Action
Insert
Read
Constraint
Credit limit<= 5000
None
Database Administration A critical success factor in
managing the data resource in an organization
An indication of top management’s commitment to data resource management
DA and DBA Data Administrator (DA)
Responsible for controlling the overall corporate data resource, both computerized and non-computerized.Strong managerial orientation with company-wide scope.
Database Administrator (DBA)Responsible for the control of the centralized and shared database.Tends to be more technically oriented and has a narrower, DBMS-specific scope.
DBA Placement Should not be organizationally below any
group on which it imposes restrictions. Should not be more than one level above the
organizations with which it interfaces.
D B A
M anagerS ys tem s
M anagerO perations
M anagerP rogram m ing
V ice P res identD ata Process ing
Desired DBA Skills
Broad business understanding
Coordination skills Analytical skills Conflict resolution
skills Communication skills Negotiation skills
Broad data processing background
Systems Development Life Cycle
Structured methodologies Database Life Cycle Database design and
modeling skills Data dictionary
management
Managerial
Technical
DBA’s Managerial Role Support the end-user community, resolve conflicts Enforce policies, procedures, and standards for data
creation, usage, distribution, and deletion within the database.
Control data security, privacy, and integrityData are protected, reconstructable, auditable, tamperproof.Users are identifiable, authorized, monitored.
Plan, test, and Implement data backup and recoveryDatabase security officer (DSO), Disaster management
Ensure data be distributed to the right persons at the right time in the right format.
DBA’s Technical Role DBMS and utilities selection, evaluation ,and installation Design and implementation of databases and
applications Testing and evaluation of databases and applications Operation of the DBMS, utilities, and applications
System support, performance monitoring and tuning, backup and recovery, security auditing and monitoring
Training and supporting users to use DBMS Maintenance of the DBMS, utilities, and applications
Storage reorganization, software upgrade, data migration and conversion
Database Administration Tools Data Dictionary
Stores the definition of data characteristics and relationships.May be integrated or stand-alone, active or passive.A tool for information resource management.The basis for monitoring database use and the assignment of access rights to the database users.Support data analysis-and-design activities
CASE Tools
Database Administration Tools The Data Dictionary
Different types of data dictionaries: An integrated data dictionary is included
with the DBMS, while a stand-alone data dictionary comes from a third-party vendor.
An active data dictionary is automatically updated by the DBMS, while a passive data dictionary requires a batch process to create and update the dictionary.
Database Administration Tools CASE Tools
CASE -- Computer-Aided Software Engineering It provides an automated framework for the
Systems Development Life Cycle. Front-end CASE tools provide support for the
planning, analysis, and design phases. Back-end CASE tools provide support for the coding
and implementation phases. It is based on the use of structured
methodologies and powerful graphical interfaces.
Database Administration Tools CASE Tools
Benefits of CASE tools A reduction in development time and costs The automation of the SDLC Standardization of the systems development
methodologies Easier maintenance of application systems
developed with CASE tools Improve communications among the DBA,
applications designers, and the end users.
Database Administration Tools CASE Tools
A CASE tool keeps track of all objects created by the systems designer in the data dictionary.
Some CASE tools provide interfaces that interact with the DBMS.
The CASE tool integrates all systems development information in a common repository.
Database Administration Tools Commercial CASE Tools
Excelerator from Intersolv, Inc. provides five components:
Graphics designed to produce structured diagrams as data flow diagrams and E-R diagrams.
Screen painters and report generators to produce the information system’s input/output formats.
An integrated repository for storing and cross-referencing the system design data.
An analysis segment to provide a fully automated check on system consistency, syntax, and completeness.
A program document generator.
Database Administration Tools Commercial CASE Tools
ERwin by LogicWorks It produces fully documented E-R diagrams that
can be displayed at different abstraction levels. It is able to produce detailed relational designs.
Major relational DBMS vendors, such as ORACLE, provide fully integrated CASE tools for their own DBMS software as well as for RDBMSs supplied by other vendors.
Future Trend The development of distributed databases
may force an organization to decentralize the data-administration function further.
The introduction of an object-oriented DBMS is very likely to add more coding in the DBA’s data modeling and design activities, thus expanding and diversifying the DBA’s job.
The rapid spread of microcomputers and local area networks tends to diffuse operational control over data, thus making centralized data administration more difficult.