Presentation is loading. Please wait.

Presentation is loading. Please wait.

2002.10.31- SLIDE 1IS 257 - Fall 2002 Fourth Generation Languages and PHP University of California, Berkeley School of Information Management and Systems.

Similar presentations


Presentation on theme: "2002.10.31- SLIDE 1IS 257 - Fall 2002 Fourth Generation Languages and PHP University of California, Berkeley School of Information Management and Systems."— Presentation transcript:

1 2002.10.31- SLIDE 1IS 257 - Fall 2002 Fourth Generation Languages and PHP University of California, Berkeley School of Information Management and Systems SIMS 257: Database Management

2 2002.10.31- SLIDE 2IS 257 - Fall 2002 Lecture Outline Review: Security and Integrity Fourth Generation Languages More on PHP and Web Interfaces

3 2002.10.31- SLIDE 3IS 257 - Fall 2002 Lecture Outline Review: Security and Integrity Fourth Generation Languages More on PHP and Web Interfaces

4 2002.10.31- SLIDE 4IS 257 - Fall 2002 Security and Integrity Functions in Database Administration Data Integrity Security Management Backup and Recovery

5 2002.10.31- SLIDE 5IS 257 - Fall 2002 Security and Integrity Functions in Database Administration Data Integrity Security Management Backup and Recovery

6 2002.10.31- SLIDE 6IS 257 - Fall 2002 Integrity Constraints (review) The constraints we wish to impose in order to protect the database from becoming inconsistent. Five types –Required data –attribute domain constraints –entity integrity –referential integrity –enterprise constraints

7 2002.10.31- SLIDE 7IS 257 - Fall 2002 Data and Domain Integrity This is now increasing handled by the database. In Oracle, for example, when defining a table you can specify: CREATE TABLE table-name ( attr2 attr-type NOT NULL, forbids NULL values attrN attr-type CHECK (attrN = UPPER(attrN) verifies that the data meets certain criteria attrO attr-type DEFAULT default_value); Supplies default values

8 2002.10.31- SLIDE 8IS 257 - Fall 2002 Referential Integrity Ensures that dependent relationships in the data are maintained. In Oracle, for example: CREATE TABLE table-name ( attr1 attr-type PRIMARY KEY, attr2 attr-type NOT NULL, …, attrM attr-type REFERENCES owner.tablename(attrname) ON DELETE CASCADE, …

9 2002.10.31- SLIDE 9IS 257 - Fall 2002 Concurrency Control The goal is to support access by multiple users to the same data, at the same time It must assure that the transactions are serializable and that they are isolated It is intended to handle several problems in an uncontrolled system Specifically: –Lost updates –Inconsistent data states during access –Uncompleted (or committed) changes to data

10 2002.10.31- SLIDE 10IS 257 - Fall 2002 Transaction Control in ORACLE Transactions are sequences of SQL statements that ORACLE treats as a unit –From the user’s point of view a private copy of the database is created for the duration of the transaction Transactions are started with SET TRANSACTION, followed by the SQL statements Any changes made by the SQL are made permanent by COMMIT Part or all of a transaction can be undone using ROLLBACK

11 2002.10.31- SLIDE 11IS 257 - Fall 2002 Transactions in ORACLE COMMIT; SET TRANSACTION READ ONLY; SELECT NAME, ADDRESS FROM WORKERS; SELECT MANAGER, ADDRESS FROM PLACES; COMMIT; Freezes the data for the user in both tables before either select retrieves any rows, so that changes that occur concurrently will not show up Commits before and after ensure any uncompleted transactions are finish, and then release the frozen data when done

12 2002.10.31- SLIDE 12IS 257 - Fall 2002 Transactions in ORACLE Savepoints are places in a transaction that you may ROLLBACK to (called checkpoints in other DBMS) –SET TRANACTION…; –SAVEPOINT ALPHA; –SQL STATEMENTS… –IF (CONDITION) THEN ROLLBACK TO SAVEPOINT ALPHA; –SAVEPOINT BETA; –SQL STATEMENTS… –IF …; –COMMIT;

13 2002.10.31- SLIDE 13IS 257 - Fall 2002 Database Security Views or restricted subschemas Authorization rules to identify users and the actions they can perform User-defined procedures (and rule systems) to define additional constraints or limitations in using the database Encryption to encode sensitive data Authentication schemes to positively identify a person attempting to gain access to the database

14 2002.10.31- SLIDE 14IS 257 - Fall 2002 Views A subset of the database presented to some set of users –SQL: CREATE VIEW viewname AS SELECT field1, field2, field3,…, FROM table1, table2 WHERE ; –Note: “queries” in Access function as views

15 2002.10.31- SLIDE 15IS 257 - Fall 2002 Restricted Views Main relation has the form: Name C_name Dept C_dept Prof C_prof TC J SmithSDept1SCryptographyTS M DoeUDept2SIT SecuritySS R JonesUDept3USecretaryUU U = unclassified : S = Secret : TS = Top Secret

16 2002.10.31- SLIDE 16IS 257 - Fall 2002 Restricted Views NAMEDeptProf J SmithDept1--- M DoeDept2IT Security R JonesDept3Secretary NAMEDeptProf M Doe--- R JonesDept3Secretary S-view of the data U-view of the data

17 2002.10.31- SLIDE 17IS 257 - Fall 2002 Disaster Recovery Planning Testing and Training Procedures Development Budget & Implement Plan Maintenance Recovery Strategies Risk Analysis From Toigo “Disaster Recovery Planning”

18 2002.10.31- SLIDE 18IS 257 - Fall 2002 Threats to Assets and Functions Water Fire Power Failure Mechanical breakdown or software failure Accidental or deliberate destruction of hardware or software –By hackers, disgruntled employees, industrial saboteurs, terrorists, or others

19 2002.10.31- SLIDE 19IS 257 - Fall 2002 Threats Between 1967 and 1978 fire and water damage accounted for 62% of all data processing disasters in the U.S. The water damage was sometimes caused by fighting fires More recently improvements in fire suppression (e.g., Halon) for DP centers has meant that water is the primary danger to DP centers

20 2002.10.31- SLIDE 20IS 257 - Fall 2002 Lecture Outline Review: Security and Integrity Fourth Generation Languages More on PHP and Web Interfaces

21 2002.10.31- SLIDE 21IS 257 - Fall 2002 Fourth Generation Languages 1st Generation -- Machine Language 2nd Generation -- Assembly Languages 3rd Generation -- High-Level Languages 4th Generation -- Non-Procedural Languages 5th Generation -- ?? Knowledge-based ?? Natural Language ?? Where do Object-Oriented Languages fit??

22 2002.10.31- SLIDE 22IS 257 - Fall 2002 Chauffeurs In the early days of the US car industry, production volumes were growing fast, and a well-known sociologist was asked to predict the total number of automobiles that would ever be manufactured. After a great deal of study, the sociologist reported that no more than 2 million would be manufactured in the life cycle of the car. If the car lasted ten years on average, the maximum annual production would never exceed 200,000. This conclusion was based on the much-researched figure that no more than 2 million people would be willing to serve as chauffeurs. From James Martin - Fourth Generation Languages

23 2002.10.31- SLIDE 23IS 257 - Fall 2002 Fourth Generation Languages In the database environment these are used for creation of database applications To speed up the application building process To make applications easy and quick to change To minimize debugging problems To generate bug-free code from high-level expressions of requirement To make languages user-friendly so that “end- users” can solve their own problems and put computers to work.

24 2002.10.31- SLIDE 24IS 257 - Fall 2002 Basic Principles of 4GLs The Principle of Minimum Work The Principle of Minimum Skill The Principle of avoiding alien syntax and mnemonics The Principle of Minimum Time The Principle of Minimum errors The Principle of Minumum Maintenance The Principle of Maximum Results From James Martin - Fourth Generation Languages

25 2002.10.31- SLIDE 25IS 257 - Fall 2002 Properties of 4GLs User Friendly A nonprofessional programmer can obtain results with it It employs the database management system directly Programs for most applications can be created with 10 times fewer instructions than in a Third Generation Language

26 2002.10.31- SLIDE 26IS 257 - Fall 2002 More Properties of 4GLs Non procedural code is used wherever possible It make intelligent default assumptions about what the user wants wherever possible It is designed for online operation It enforces or encourages structured code It makes it easy to understand and maintain another person’s code

27 2002.10.31- SLIDE 27IS 257 - Fall 2002 More Properties of 4GLs Non-DP users can learn a subset of the language in a short course It is designed for easy debugging Prototypes can be created and modified quickly Results can be obtained in an order of magnitude less time than with a 3GL for most applications

28 2002.10.31- SLIDE 28IS 257 - Fall 2002 Selection Criteria for 4GLs Is it intended for routine computing of ad hoc decision making Is it intended for end users or DP professionals? (many 4GLs are appropriate for both) Does it require the skills of a programmer, or can an analyst who does not program in a 3GL use it.

29 2002.10.31- SLIDE 29IS 257 - Fall 2002 Selection Criteria for 4GLs Which of the following features does it provide? –Simple queries –Simple queries and updates –Complex queries –Complex queries and updates –The ability to create a database quickly –Intelligent database operations, where the change of one value in the database causes other operations to occur automatically, such as validity checks, cross references, and the updating of related values.

30 2002.10.31- SLIDE 30IS 257 - Fall 2002 Selection Criteria for 4GLs Which of the following features does it provide?(cont) –Generation of data-entry screens for key-entry operators (with validity checks) –Generation of data-update screens for key-entry operators (with validity checks) –A procedural language giving full programming capability –Graphics techniques for application design –Spreadsheet manipulation –Multidimensional matrix manipulation –Report generation –Graphics generation

31 2002.10.31- SLIDE 31IS 257 - Fall 2002 Selection Criteria for 4GLs Which of the following features does it provide?(cont) –Graphics manipulation –Decision support for what-if questions –Mathematical analysis tools –Financial analysis tools –Other decision-support tools –Text manipulation –Electronic Mailbox Is it on-line or off-line? Does it run on mainframes, minicomputers or personal computers? Can it access mainframe or remote databases Is it genuinely easy to use Can results be obtained with it very quickly?

32 2002.10.31- SLIDE 32IS 257 - Fall 2002 Components of a 4GL Application Parameters Testing tools/debugger Interpreter Optimizing compiler Rules Specification Data Specification Report Specification Screen Specification Procedural facility Feedback for building routine applications…

33 2002.10.31- SLIDE 33IS 257 - Fall 2002 5GLs -- Natural Language Possibilities Problems

34 2002.10.31- SLIDE 34IS 257 - Fall 2002 Natural Language Advantages of using NL –It encourages untrained users to start –It encourages upper-management use of computers –It reduces the time taken learning complex syntax –It lessens the frustration, bewilderment and anger caused by BAD COMMAND responses –It is likely to extend greatly the usage of computers James Martin, Fourth Generation Languages, 1985

35 2002.10.31- SLIDE 35IS 257 - Fall 2002 Natural Language It lacks precision It is not good for expressing precise and complex logic It is not good for expressing neat structures It encourages semantic overshoot It should be combined with other dialogue contructs that aid in the representation of precise logic and structures James Martin, Fourth Generation Languages, 1985 Disadvantages of using NL Appropriate response to the disadvantage

36 2002.10.31- SLIDE 36IS 257 - Fall 2002 Natural Language It takes substantial time to key in sentences Ambiguities are possible Substantial processing is needed Sentences and words can be abbreviated Speech input as well as typed input will be used The computer should detect and resolve ambiguities The processing should be on PC workstations. Processing is dropping rapidly in cost. James Martin, Fourth Generation Languages, 1985 Disadvantages of using NL Appropriate response to the disadvantage

37 2002.10.31- SLIDE 37IS 257 - Fall 2002 Assumptions and Issues Why 4GLs? –Are they still appropriate? –Are they still useful? Is Cold Fusion a 4GL? What about PHP? Who needs them?

38 2002.10.31- SLIDE 38IS 257 - Fall 2002 Lecture Outline Review: Security and Integrity Fourth Generation Languages More on PHP and Web Interfaces

39 2004.02.26 - SLIDE 39IS 257 – Spring 2004 PHP PHP is an Open Source Software project with many programmers working on the code. –Commonly paired with MySQL, another OSS project –Free –Both Windows and Unix support Estimated that more than 250,000 web sites use PHP as an Apache Module.

40 2004.02.26 - SLIDE 40IS 257 – Spring 2004 PHP Syntax Similar to ASP Includes most programming structures (Loops, functions, Arrays, etc.) Loads HTML form variables so that they are addressable by name <?php $myvar = “Hello World”; echo $myvar ; ?>

41 2004.02.26 - SLIDE 41IS 257 – Spring 2004 Combined with MySQL DBMS interface appears as a set of functions: <?php $db = mysql_connect(“localhost”, “root”); mysql_select_db(“mydb”,$db); $result = mysql_query(“SELECT * FROM employees”, $db); Printf(“First Name: %s \n”, mysql_result($result, 0 “first”); Printf(“Last Name: %s \n”, mysql_result($result, 0 “last”); ?>

42 2002.10.31- SLIDE 42IS 257 - Fall 2002 Diveshop PHP The same interface (with minor differences) that we saw for ColdFusion has been implemented in PHP and MySQL Address for the example is –http://dream.sims.berkeley.edu/~ray/Diveshop/index.php3 To setup your own MySQL database you will need to use the “my.sims” interface to request a MySQL account and PHP access

43 2002.10.31- SLIDE 43IS 257 - Fall 2002 Diveshop PHP Setup puts a “public_html.php” directory in your home directory and you put your PHP files there The PHP processor is on the “dream.sims” machine, so use that for access Because the results of the PHP processing don’t include the original PHP instructions we will look at the different PHP scripts that generated the pages

44 2002.10.31- SLIDE 44IS 257 - Fall 2002 Simple search Example PHP Database: DiveShop PHP DiveShop Customers ID # Name Street City State/Prov Zip Country Phone First Contact <? mysql_connect("localhost","ray","ray"); $query = "SELECT * FROM DIVECUST"; $result = mysql_db_query("ray", $query); if ($result) { echo "Got results..."; while ($r = mysql_fetch_array($result)) { echo " "; $tmp = $r["Customer_No"]; echo " $tmp "; $tmp = $r["Name"]; echo " $tmp "; $tmp = $r["Street"]; echo " $tmp "; $tmp = $r["City"]; echo " $tmp "; $tmp = $r["State_Prov"]; echo " $tmp "; $tmp = $r["Zip_Postal_Code"]; echo " $tmp "; $tmp = $r["Country"]; echo " $tmp "; $tmp = $r["Phone"]; echo " $tmp "; $tmp = $r["First_Contact"]; echo " $tmp "; echo " "; } } else { echo " No Results???"; } ?>

45 2002.10.31- SLIDE 45IS 257 - Fall 2002 Details <? mysql_connect("localhost","ray","ray"); $query = "SELECT * FROM DIVECUST"; $result = mysql_db_query("ray", $query); if ($result) { echo "Got results..."; while ($r = mysql_fetch_array($result)) { echo " "; $tmp = $r["Customer_No"]; echo " $tmp "; $tmp = $r["Name"]; …etc… } } else { echo " No Results???"; } ?>

46 2002.10.31- SLIDE 46IS 257 - Fall 2002 Adding data New Customer Information DiveShop : New Customer Input Please input your information below Name: Street: City: State: ZIP: Country: Phone:


Download ppt "2002.10.31- SLIDE 1IS 257 - Fall 2002 Fourth Generation Languages and PHP University of California, Berkeley School of Information Management and Systems."

Similar presentations


Ads by Google