UQAttic.net [Chat] INFS1200 2011 midsem notes Module 1: Database Systems What is a database? A database is a collection of related facts. What is a DBMS? ● ● DBMS – Data Base Management System The DBMS facilitates: o o o Defining the database: Specifying types, structure and constraints for the data Constructing a database: Storing the data on a storage medium Manipulating a database: Querying and updating the database What is a database system? Components ● ● ● ● The stored database: A collection of related facts The DBMS: The software that defines, constructs and manipulates a database The applications: The programs that manipulate the database The users: The people who use the database through the DBMS or applications Why use a database system? ● ● ● It is not internal and specific to an application program One database can be manipulated and shared among many users Allows the application programmer to focus on programming the application INFS1200 2011 midsem notes ● UQAttic.net [Chat] Allows you to change the data without affecting the application The DBMS software Typical functions Controlling redundancy ● ● Redundancy occurs when one fact is stored in more than once place Can cause problems such as: o o o ● Duplication of effort Wastage of storage space Inconsistent data Redundancy can sometimes also enhance performance provided it is controlled Restricting unauthorized access ● ● ● Different user groups may have different privileges (create, update, delete, etc.) Controlled by the DBMS through the use of accounts and passwords Usually contains at least the following roles: o o o Casual user: May be able to access some data but usually not confidential data Parametric users: May be given update access but generally can’t change the structure of the data Database administrators: Highest privileges, create user accounts and modify structure Providing multi-user interfaces ● ● Query languages for casual end users Programming language interfaces for application programmers INFS1200 2011 midsem notes ● UQAttic.net [Chat] Forms and commands for parametric users Complex relationships DBMS has the ability to represent complex relationships among the data. Enforcing integrity constraints The DBMS has the capability to define and enforce integrity constraints which are restrictions placed on the data, based on the meaning of the data, for example: ● ● ● ● Every subject must have a unique code A student cannot have 2 different grades for the same subject A student cannot enrol in more than one four 12-credit subjects in a semester Student number must be a 9 digit integer Providing backup and recovery The DBMS provides facilities to recover from hardware and software failures through backup and recovery systems, for example: ● ● ● An update action is being executed The computer system fails mid-update The DBMS restores the data to a state prior to the update and restarts the update program INFS1200 2011 midsem notes UQAttic.net [Chat] Module 2: Requirements engineering Phases of system development lifecycle 1. 2. 3. 4. 5. Planning Analysis Design Implementation Maintenence System development life cycle (SDLC) 1. Project identification and selection ● Part of cooperate systems planning process 2. Project initiation and planning ● Project justification, scope study, feasibility, resource allocations, etc. 3. Analysis ● Identify problems and opportunities based on description of current system; how to fix, enhance or replace the current system ● Process modelling, logic modelling, conceptual data modelling 4. Logical design ● Functional, detailed system specification ● Forms, reports, interfaces and logical data modelling 5. Implementation ● Code, documentation, training and support 6. Maintenance ● New versions, updates Role of a systems analyst ● Study the problems and needs of an organisation and determine how people, methods and information technology can be combined to improve the situation ● ● Help system users and other business managers define their requirements Act as an agent of change and innovation System design methodolegies ● Structured design o o ● Parallel Development Rapid application development (RAD) o o o o ● Waterfall model Phased methodology Spiral model Prototyping Throwaway prototyping Agile development INFS1200 2011 midsem notes o UQAttic.net [Chat] Extreme programming (XP) Prototyping 1. Planning a. Analysis b. Design c. Code 2. System prototype 3. Code 4. System Advantages ● ● ● ● Interacting with users allowing dynamic changes Supports incremental development Allows you to assess feasibility early Allows you to explore performance issues early Problems ● ● ● Users treat prototype as a solution May not be scalable Lacks formal methodologies and proof of correctness Why requirements engineering ● The late correction of requirement errors could cost up to 200 times if not corrected during requirements engineering. ● Most problems with software come down to problems with the requirements What is requirements engineering? Identification of the: ● ● ● Goals to be achieved by the system The application of goals in services and constraints The assignment of responsibilities of the requirements to humans, devices or software A transformation process from goals to tasks: ● ● ● A language, model or tool Automatic support to ensure the quality such as completeness, traceability, verifiability and reusability Supporting requirement evolution, viewpoints and inconsistency management How to do requirement engineering ● ● Domain analysis Drawing conclusions about domain INFS1200 2011 midsem notes ● ● ● ● ● UQAttic.net [Chat] Negotiation and agreement Specification Verification and validation of specification Documentation Evolution Dangers of modelling ● A model is never perfect o o Phenomena in the model may not be present in the application domain Phenomena in the application domain may not be present in the model So what should we do? ISO 100% Principle: “All relevant general static and dynamic aspects, I.e. all rules, laws, etc. of the Universe of Discourse should be described in the conceptual schema. The information system cannot be held responsible for not meeting those described elsewhere, including in particular those in application programs.” Tools for data modelling ● ● ● ● ● ● ER/EER diagrams DFD, STD UML (Object-Oriented approach) First order Logic Z Specification Language Goal Graph From the universe of discourse to the system ● Verifying the correctness of the system o o ● Ensure there is no ambiguity or no alternate interpretations Ensure there is no redundancy or derivable data Validating the completeness o o Ensure everything in the UoD is represented Everything expressed by the model is true to the UoD Dealing with problems in modelling ● ● ● ● ● Ambiguity: Elicitation and assumptions Conflicting facts: Negotiation and agreement Incomplete information: Elicitation and assumptions Alternative design options: Documentation Potential structural changes: Schema evolution mechanisms INFS1200 2011 midsem notes UQAttic.net [Chat] Modelling processes, dynamics and data ● Understanding the tasks, processes and tools for information systems: Dataflow Diagrams (DFD) ● ● Understanding the concepts of system dynamics: State Transition Diagrams (STD) Understand the kinds of data and its relationships and constraints: Entity Relationship Diagrams (ERD) Key components of information systems Data ● ● Raw facts Processed data presented in a form suitable for human interpretation Data flows ● Groups of data in motion, moving from one place in a system to another Process logic ● The steps by which data is transformed or moved and a description of events that trigger these steps Perspectives on modelling Process-oriented Approach Concentrates on the flow, use and transformation of data ● ● Tracks data sources, processing steps and destinations of data Late additions: Temporary data stores, timing and triggered process steps Data-Oriented Approach Focusing on the ideal organisation of data rather than where and how that data is used ● A data model describes the kinds of data needed in the system and relationships among them ● ● ● Scheme: syntax Constraints: semantics Both data-oriented and process-oriented approaches pre-date object-oriented approach Seperating database and application ● ● Database: A shared collection of logically related data Application independence o o The separation of data from the applications which use that data Database always designed with some applications in mind (typical queries) Functional analysis and info flow Modelling of business logic (functions/activities/processes): INFS1200 2011 midsem notes ● ● ● ● ● UQAttic.net [Chat] Identifying events: Activities observable in the environment (What has happened?) Examining information flow: How database is used (what is changed) Analysing: Determining flow of information between functions and the system I/O (how things changed?) Decomposing activities (how to organise changes?) Defining functions: Decomposing operational part of an enterprise system (how to make changes) Data flow diagram (DFD) ● ● A graphical analysis tool to identify processes that transform data when it passes through Convert physical transformations into a logical model that eliminates the existing physical constraints ● Database design not considered in the process (concentrates on how inputs are converted into required outputs) ● ● Captures essential features only, usual no a complete representation Imagines the system will ultimately be implemented using ideal technology which: o o o o Costs nothing Takes no time to do a job Has no size limit Never makes mistakes DFD Concepts Terminators ● An existing source of information o o ● ● ● Either the originator or recipient of information External to information system Named with a noun Must have at least one data flow entering or leaving Denoted by: Data flows ● Carries data from one place in a system to another ● Labelled with a noun, sometimes an objective o o ● ● ● ● One end must be a process Avoid generic terms Doesn’t control flow Not a flow of materials Direction of flow is relevant Denoted by: INFS1200 2011 midsem notes Process ● An activity that can occur in the information system o o ● Can transform, generate, retrieve or delete data Must have both incoming and outgoing data flows Labelled with a strong active verb o ● Don’t use generic verbs Graphical notation Data stores ● Information repository o o o o o ● Connects only to processes Outgoing line: Usage of information Incoming line: Change of information At least one incoming and one outgoing flow Must be named o o o ● ● Temporary or permanent records Nouns (possibly qualified adjective) – no verbs In and out flows are not named Avoid generic terms Normally corresponds to tables Graphical notation DFD – Functional analysis model ● Shows flows of data between: o o o ● ● Processes Processes and external entities Data stores and processes Dependency diagram plus data stores and flows Components o o o Process Data store Data flow UQAttic.net [Chat] INFS1200 2011 midsem notes o UQAttic.net [Chat] Source-sink (environment/interface Key things to remember about DFD ● ● ● A data driven approach to analyse the data processing A top-down refinement process to specify the tasks A representation of system functions Types of DFD Context level A DFD with one process only, to document the environment in which the system operates: ● Terminators are not to be labelled with people’s names o ● A handler is not a terminator o ● The person who delivers grade reports is not a terminator Terminators are outside the system o ● Use their roles instead How they interact and communicate is not documented Every event should create a response o Every inflow stimulates some activity in the system Level 0 Diagram A DFD that represents the system’s major processes, data flows and data stores at a high level of detail: UQAttic.net [Chat] INFS1200 2011 midsem notes Process numbering hierachy Numbered using the following example: Context: 0 Level 0: 1.0, 2.0, 3.0 Level 1: 1.1, 1.2, 1.3 Level 2: 1.1.1, 1.1.2, 1.1.3 Etc.
If you ever wanted to a course which was easy, well structured and provide a good balance between prac and theory, well INFS1200 is among the ever increasingly rare courses, offered at UQ, which actually meets this criteria. Unlike some of the 1st year courses, INFS1200 is designed to be easy and intuitive, boosting your morale and confidence lost from some of those other painful 1st courses.
For those of you who don't know what information systems is, it essentially entails the design and implementation of databases from start to finish, from the actual paperwork right down to SQL. No programming experience is assumed (SQL isn't actually a proper programming language BTW).
The lectures are actually useful and insightful, with no technical issues associated with lecture recordings (otherwise this would've been an utter embarassment for an IT lecturer) and the lecturer, Professor Shazia Sadiq providing very informative yet consise explanations that are easy for any layperson to understand, despite her accent. Additionally, she does provide real-world examples (not a reference to QUT) relating to databases and encourages class participation, making the course meaningful. The only minor upset was when Shazia mysterious vanished, only to have Professor Xue Li to fill her role for an 8am lecture. He may be a knowledge man with strong words, but the strength of his words is comparable with the strength of his accent, making it extremely difficult to understand functional dependencies, which was in fact the most difficult component of the course.
As for the content, some may complain that the terminology is bit over the top for such intuitive concepts. I would say that it isn't, and doing well in the exam is matter of memorising a few bits and pieces here and there, practicing some SQL as well as completing some past exams. The exam itself poses no surprises and is a direct reflection of all the past exams, so you can be sure of an easy 7.
Another thing, don't bother with the textbook, unless you plan on taking later year courses in info system. The textbook will overwhelm you with complicated terminology that could be easy explained by a high school student or quick google search for that matter.
The only real complaint that I can make is that it simply isn't challenging enough. Other courses bombard you content, encourage critical thinking or force you to think creatively, INFS1200 doesn't really do either of these and you could get a 7 simply by attending all the tutorials and revising everything the hour before the exam (though I don't encourage it).
Overall, if you're ever in need of an easy breezy course to complement that nasty, painful 1st/2nd year couse such as ENGG1100 or PHYS1002 (just to name a few), then INFS1200 is worth considering even if your not planning to undertake a computer science, software engineering or any IT major.