DATA 520 Databases

(a practical and no-nonsense course)
(a one-stop course for database-driven electronic/mobile commerce system construction)
Database JDBC Oracle PL/SQL SQL SQL Developer
SQL*Plus Oracle OR 12c Object-oriented Oracle SQL Cheat 1 SQL Cheat 2
Software/Tool Java Perl Unix shell Emacs Linux
Web Tool CGI (X)HTML W3Schools CGI 101
Android Android Getting started Building app Android - Vogella Android application development
Android design guidelines Android developers Android programming
General Information Discord EE/CS Wiki EITS UND help Stackoverflow


Syllabus: Fall 2024   Credit hours: 3
Class times: 09:30am – 10:45am, TuTh Classroom: Witmer Hall 209
Class # (on-campus: 520-01): 21778 Class # (on-line: 520-02): 21779


Instructor: Wen-Chen Hu   (my teaching philosophy) Office: Upson II 366K
: https://und.zoom.us/j/2489867333 Email: wenchen@cs.und.edu
Office hours: 02:30pm – 04:30pm, MoWeFr
 
Prerequisites:
  • DATA 511 Computing for Data Science I,
  • DATA 512 Computing for Data Science II, and
  • DATA 513 Mathematics for Data Science, or
  • Permission of the School of Electrical Engineering and Computer Science
Synchronous class delivery: The class lectures will be delivered synchronously via https://und.zoom.us/j/2489867333, and the Zoom video will be posted on the Blackboard afterwards. Students can watch the video clips anytime they want.
 
Lecture notes: No textbook will be used. Instead award-winning, interactive, informative, and practical lecture notes (based on books, papers, online documents, and user manuals) and detailed and precise class instructions will be provided. Collectively, the lecture notes and instructions are more like a small book, which supplies much more information than regular notes do and makes the subject studies much easier. Students will not have problem learning the subjects or taking the exams after studying them and doing programming exercises.



Grading:


Announcements:



Tentative Schedule:


Week

Class Topic   Due   Where
0 0. Computer Career and Data Research & Technologies    
  0.1 A computer career    
  0.2 Data research    
  0.3 Data technologies    
1 08/27
08/29
1. Introduction to DATA 520    
  1.1 Course outline    
  1.2 Databases to build    
  1.3 Software to be used    
2 09/03
09/05
2. Programming Exercise I    
  2.1 Specifications    
  2.2 A sample website    
  2.3 Construction steps    
09/04  Last day to add a course or drop without record — 100% refund
 Last day to add audit or change to/from audit
 Last day to receive a refund on a dropped class
 Drops after the last day to add will appear on a transcript.
   
3 09/10
09/12
3. Essential Technologies for Exercise Construction    
  3.1 HTML (Hypertext Markup Language)    
  3.2 CGI (Common Gateway Interface)    
  3.3 Using Oracle    
4 09/17
09/19
4. Internet-Enabled Database Construction    
  4.1 Technologies for website building    
  4.2 Website construction summary    
  4.3 An example    
5 09/24
09/26
5. Oracle Databases    
  5.1 Oracle Database 21c    
  5.2 Oracle SQL*Plus    
  5.3 Oracle data dictionary    
6 10/01
10/03
6. Web-JDBC Programming    
  6.1 GET and POST methods    
  6.2 CGI forms and input fields    
  6.3 CGI radio buttons and checkboxes EX I  
7 10/10 7. JDBC Programming    
  7.1 Database connection    
  7.2 Query execution    
  7.3 Processing the result sets    
10/08
Exam I (for both on-campus and on-line students; 06:30pm – 08:30pm, Tuesday)
   
8 10/15
10/17
8. Android Mobile Operating System    
  8.1 Programming Exercise II    
  8.2 Downloading and installing Android Studio    
  8.3 Programming Android    
9 10/22
10/24
9. An Android Hello-World Project    
  9.1 Manifest file    
  9.2 Layout XML code    
  9.3 Layout XML code    
10 10/29
10/31
10. Android User Interface Processing    
  10.1 Hypertext    
  10.2 Radio buttons    
  10.3 Checkboxes    
11 11/05
11/07
11. Android Server Connection    
  11.1 Android URL connection    
  11.2 Java source code    
  11.3 Server-side scripts    
12 11/12
11/14
12. Relational Model and Algebra    
  12.1 Relational tables    
  12.2 Relational rules    
  12.3 Relational algebra  
11/15  Last day to change to or from S/U grading
 Last day to change to or from audit grading
 Last day to drop a full-term course or withdraw from school
   
13 11/21 13. SQL Query Language    
  13.1 Introduction to SQL    
  13.2 Data definition commands    
  13.3 Data manipulation commands    
11/19
Exam II (for both on-campus and on-line students; 06:30pm – 08:30pm, Tuesday)
   
14 11/26 14. Database Design    
  14.1 Basic modeling concepts    
  14.2 Entity-relationship (E-R) model    
  14.3 Transformation rules    
11/27
11/28
11/29
Holidays, Thanksgiving Break (WeThFr) — no classes
   
15 12/03
12/05
15. SQL Query Language (Cont.)    
  15.1 Advanced data manipulation commands    
  15.2 SQL examples    
  15.3 Power of SQL    
16 12/10
12/12
16. Database Design (Cont.)    
  16.1 Normalization    
  16.2 Normal forms    
  16.3 A case study EX II  
17 12/17
Final exam (for both on-campus and on-line students; 06:30pm – 08:30pm, Tuesday)
 
18 12/24 Grades posted before noon, Tuesday    

According to IT Career Finder, Best Computer Jobs for the Future (03/18/2024) are listed as follows:

  1. IT security specialist (not developer; average salary: $112,000)
  2.  Mobile application developer  (average salary: $127,000)
  3. Software engineer (average salary: $124,000)
  4. Video game designer (including developer; average salary: $81,000)
  5. Computer systems analyst (not developer; average salary: $102,000)
  6.  Web developer  (average salary: $79,000)
  7. Health information technician (average salary: $58,000)
  8. Technology manager (average salary: $164,000)
  9.  Database administrator (including developer)  (average salary: $112,000)
  10. Network administrator (not developer; average salary: $91,000)


Computer science is different from many other disciplines (like electrical engineering). It is more like a professional school (such as culinary schools), which emphasizes practical works instead of subject studies because many IT companies want the new recruitees to start contributing immediately. There are three kinds of computing personnel: Unless you have an impressive resume or a strong connection, practicing tens or hundreds of questions posted at the LeetCode is a must in order to secure a job at corporations (like Google and Facebook). Otherwise, your chance of answering the questions correctly is low because of their high difficulty and time constraint. In addition, you need to create LinkedIn pages to show your achievements, and may consider uploading your projects to the GitHub to showcase them.



Remark I: Definitions, terminologies, and theories will be discussed minimally in this course. Instead practical works and programming knowledge will be emphasized and enforced. The old technology, CGI (Common Gateway Interface), will be used to connect the Web to JDBC (Java Database Connectivity) programs because of the limited resources provided by the CEM, but CGI has no problem implementing the features used by other technologies (like ASP.NET or PHP). Also, the focus of this course is on databases, instead of Web-database connection.

Remark II: Database technologies like programming languages have no breakthroughs for years, so old, new, these, or those textbooks are pretty much the same. In other words, not much database research is left to do. However, databases are still a useful tool for other research areas like data science including data (web) mining and discovery, information retrieval, and mobile data management (e.g., location-based services). Don’t mention databases are a must tool for many applications such as e/m-commerce sites and IT systems.

Remark III: Web, mobile, and database programming is a must for IT developers, and the only effective way to learn software development is practicing, instead of studying concepts or writing some testing programs.
No pain, no gain 😂
Remark IV: According to a study, students in computer courses learn much more by building large-scale exercises instead of many small-scale test programs, which give fragmented knowledge contrary to solid understanding of the system.

Remark V: Remote work is a trend for IT workers. This course also allows you to learn how to do it by using the VPN (virtual private networks) to connect to our Linux server undcemcs02.und.edu, and having the exercises set up at the server and be accessed from the clients.

Instructor’s qualification: The instructor’s PhD dissertation is titled “An image database system based on a linear skeleton representation,” which includes a database-driven web system by using Perl and Sybase in 1997, when not many people were familiar with the Web. In fact, all his research to date uses or relates to databases, but not tries to build or enhance a DBMS (database management system). In addition, he is familiar with many kinds of databases like Oracle, MySQL, Google Firebase, SQLite, Microsoft Access, Sybase, and MongoDB.



University of North Dakota Course Descriptions (DATA 520) —
An introduction to the principles of database design and management. Topics include query optimization, procedural extension of query languages, runtime error handling, normalization techniques, data warehousing, and NoSQL.

Database Outline —
A collection of information organized in such a way that a computer program can quickly select desired pieces of data. To access information in a database, you need a database management system (DBMS), which is a collection of programs that enables you to enter, organize, and select data in a database.

A System Structure of a Generic Internet/Mobile-Enabled Database System —



Client-side mobile/handheld programming steps —


An Internet-Enabled and Mobile Database Course Sequence —
This is part of an Internet/mobile-enabled database course sequence offered by me:
CSCI 260 .NET and World Wide Web Programming

CSCI 457 Electronic and Mobile Commerce Systems

DATA 520 Databases

CSCI 513 Advanced Database Systems

CSCI 515 Data Engineering and Management

DATA 525 Data Engineering and Mining
The following platforms, software, and tools used in these courses greatly help students land a decent job: