1. Introduction – Getting started with an IT
Introduction – Getting started with an IT
Ram N Sangwan
• Computer and its Language
• Machine Language
• High Level Languages : C, C++, Dot Net, Java, PHP, Perl, Python
• Compiler and Interpreter, Source Code, Binary Executables
• Operating System – Definition and examples
• System Software – Definition and Examples
• Application Software – Definition and Examples
• Complete Development Platform – User Interface, Application program and Database.
• Multiuser platform and Distributed Databases.
• Database Management System: Flat File Data, DBMS, RDBMS.
• Application Layers : User Interface, Business Logic, Database
• A computer system is defined as combination of components designed to process data and store files.
• A computer system requires hardware, software and a user to fully function.
• input devices, output devices, processor and storage devices.
• to set of instructions that tell the hardware what to do.
• person who uses the computer for any purposes such as work, business and entertainment.
• Machine language programs were made up of instructions written in binary code.
◦ This is the “native” language of the computer.
◦ Each instruction had two parts: Operation code, Operand
◦ Operation code (Opcode): The command part of a computer instruction.
◦ Operand: The address of a specific location in the computer’s memory.
◦ Hardware dependent: Could be performed by only one type of computer with a particular CPU.
High Level Languages
A high-level language is a programming language such as C, FORTRAN, or Pascal that enables a programmer to write programs that are more or less independent of a particular type of computer. (Assembly Language Instructions are called “Mnemonics”)
Such languages are considered high-level because they are closer to human languages and further from machine languages.
Assembled, Compiled, or Interpreted Languages
• All programs must be translated before their instructions can be executed.
• Computer languages can be grouped according to which translation process is used to convert the instructions into binary code:
• Assembler: a program used to translate Assembly language programs.
• Produces one line of binary code per original program statement.
◦ The entire program is assembled before the program is sent to the computer for execution.
• Interpreter: A program used to translate high-level programs.
• Translates one line of the program into binary code at a time:
◦ An instruction is fetched from the original source code.
◦ The Interpreter checks the single instruction for errors. (If an error is found, translation and execution ceases. Otherwise…)
◦ The instruction is translated into binary code.
◦ The binary coded instruction is executed.
◦ The fetch and execute process repeats for the entire program.
• Compiler: a program used to translate high-level programs.
• Translates the entire program into binary code before anything is sent to the CPU for execution.
◦ The translation process for a compiled program:
◦ First, the Compiler checks the entire program for syntax errors in the original source code.
◦ Next, it translates all of the instructions into binary code.
◦ Two versions of the same program exist: the original source code version, and the binary code version (object code).
◦ Last, the CPU attempts execution only after the programmer requests that the program be executed.
• System software is a type of computer program that is designed to run a computer’s hardware and application programs.
• If we think of the computer system as a layered model, the system software is the interface between the hardware and user applications.
• It Refers to the operating system and all utility programs that manage computer resources at a low level.
• An application is any program, or group of programs, that is designed for the end user.
• Applications software (also called end-user programs) include such things as database programs, word processors, Web browsers and spreadsheets.
Complete Development Platform
Multiuser platform – Distributed Databases
• Multi-user interface typically refers to an operating system that allows concurrent access by multiple users on the system. For example on UNIX operating systems, two users can log in to the system at the same time.
• A distributed database is a database in which portions of the database are stored in multiple physical locations and processing is distributed among multiple database nodes.
• “An operating system, or OS, is a software program that enables the computer hardware to communicate and operate with the computer software. Without a computer operating system, a computer would be useless”
• A layer of software that manages processors, memory, disks, printers, keyboard , display, network interfaces , input/output devices and provide user programs with a simpler interface to the hardware.
Operating Systems – Important Terms
GUI – Short for Graphical User Interface, a GUI Operating System contains graphics and icons and is commonly navigated by using a computer mouse.
Multi-user – A multi-user operating system allows for multiple users to use the same computer at the same time and/or different times.
Multiprocessing – An operating system capable of supporting and utilizing more than one computer processor.
Multitasking – An operating system that is capable of allowing multiple software processes to run at the same time.
Multithreading – Operating systems that allow different parts of a software program to run concurrently.
• Goals of a database management system
◦ To provide an environment which will efficiently provide access to data in database
◦ Implement security, control in concurrency and recovery from crash.
• It is a general purpose facility for:
◦ To define database
◦ To construct database
◦ Manipulate database
Flat File Databases
• Before database management system, all the data was managed in file systems.
• A program written in high level language like COBOL used to manage and arrange the data as per the need.
• Duplication of the data can seen very easily as every program will maintain data as per the requirement.
• There will be no uniformity in maintaining the data.
• Securities at different level was very difficult to maintain.
• Data: are known facts which are recorded with implicit meaning
• Database : it is a collection of logically related data at one place.
• Data base management system: A software to Manage the Database
Drawbacks of file management system
• Data redundancy.
• No uniformity in the data
• All the data would have been arranged as per the need of the specific program.
• No security control.
Benefits of database Approach
• Then came DBMS (e.g. Foxpro, Foxbase, dBase III+ etc)
• One Software to manage Data and Business Logic.
• Redundancy reduced
• Inconsistency avoided
• Data is shared
• Standard were enforced
• Security was applied
• Integrity was maintained
Database Management System Architecture
More on DBMS Architecture
Database system is of three types
An example of three levels
Definition of RDBMS
• Relational model
◦ Dr. E. F. Codd described the relation model in 1970
◦ He has put 12 rules describing the relational model
◦ All the RDBMS applications should follow the rules
Rules of Dr. E F codd.
• Information rule – 1
◦ Database must consist of tables to each other and data should be stored in the form of a table only.
• Guaranteed access rule – 2
◦ The data can be accessed by specifying the table name and the column name and the columns that defined the primary key . Primary key ensures that each value is unique and accessible.
• Systematic treatment of NULL values – 3
◦ A null is a unknown value and every database must have a provision for storing NULL values.
◦ NULL != 0
◦ NULL != nothing
◦ NULL != NULL
◦ NULL is NULL
Rules of Dr. E F codd. (Contd.).
• Dynamic on-line catalog based on the relational model – 4
◦ In this rule it says to have user data in tables and the information about the table such as structure and other required information in tables only.
◦ One as user tables and another as metadata this metadata is what called as system catalog.
• Comprehensive sub language – 5
◦ There must be at least one language which supports data defining, view defining , manipulating data, integrity constraints.
◦ All the above should be supported with well defined syntax, as character strings.
Rules of Dr. E F codd. (Contd.).
• View updating rule – 6
◦ Should support a mechanism which designs different combinations of data from different tables called as views. All the view should be updateable.
◦ Views are virtual tables that contains extraction of data from the source tables
◦ Either it is a simple view or a complex view it should allow updates to the view.
• High level insert update and delete rule – 7
◦ Data manipulation operations treat Rows as a set. These set operations and relational operators are used to work on table.
◦ Use of insert, update and delete operations on views should act on their respective tables
Rules of Dr. E F codd. (Contd.).
• Physical data independence rule – 8
◦ Changes in the data storage should not effect programs that access the data.
• Logical data independency rule – 9
◦ The data is stored in the files physically, but tables are logical structures. So for making any changes need in logical structures there is no need of any change in the application.
• Integrity independency rule – 10
◦ Data integrity means the consistency and accuracy which keeps the garbage out of the database.
◦ Integrity constraints must be the supported functionality of any database application.
Rules of Dr. E F codd. (Contd.).
• Distribution rule – 11
◦ To the end user all the commands should be working a same as it would working for the local database even though the database is in some other place and user is accessing through network.
• Non subversion rule – 12
◦ All the constraints defined by the user using the SQL should not be bypassed by any other way.
Features of an RDBMS
• The ability to create multiple relations (tables) and enter data into them
• An interactive query language
• Retrieval of information stored in more than one table
• Provides a Catalog or Dictionary, which itself consists of tables (called system tables)
Some Important Terms
• Relation : a table
• Tuple : a row in a table
• Attribute : a Column in a table
• Degree : number of attributes
• Cardinality : number of tuples
• Primary Key : a unique identifier for the table
• Domain : a pool of values from which specific attributes of specific relations draw their values
Relations or Tables properties
• There are no duplicate rows (tuples)
• Tuples are unordered, top to bottom
• Attributes are unordered, left to right
• All attribute values are atomic ( or scalar )
• Relational databases do not allow repeating groups
Next 2. More on Databases