Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
You may find your own client, but you cannot be your own client
Project Groups
Usually, projects are done by groups of 3-4 people We have 5 in the class
Divide into 2 groups (2, 3) Work as a single group (5)
Entrepreneurial Mindset
A way of thinking and acting to create a new product, service or activity that satisfies a need and adds value to ones self and community -from the grant proposal As consultants, you will apply this mindset throughout your project At points in the course, we will look at relevant literature and examples of entrepreneurship in the software industry.
What is a Database?
Collection of related data Usually large (too large to fit in computer memory at once) Can be centralized or distributed Generally accessed by query -- retrieving only relevant parts at once
Advantages of Databases
Redundancy Control Data Consistency and Integrity Data Sharing and Integration Security Improved Maintenance Concurrency (without data loss) Backup & Recovery services
Disadvantages
Complexity Size Cost (Hardware & Software) Performance Conversion Risk of failure
File-based Systems
Since the 1950s Methods and vocabulary from paper records Custom-programmed individual applications
Sales (enter data, retrieve properties, contact clients) Contracts (enter data, record leases)
Terminology
File - collection of records Record - set of logically connected data (one instance) Field - element of a record Example:
File = library card catalog Record = one card Field = authors name
Contracts
Lease record (client, property, rent, payment info) Property record (address, rent) Client record (name, address, phone)
Whats Wrong?
Each program stores its own data
No cross-program queries (% of clients that actually rented?) Multiply entered data (property addresses)
Cost Inconsistency
How to Fix?
Separate data handling from application program Make data definitions standardized and external Develop reusable query algorithms to be controlled by external information
Organizing Data
Entity - a distinct object (noun) to represent Attribute - property of an entity Relationship - association between entities (usually a verb) Example
Entities: customer, home Attributes: name (of customer), address (of home) Relationship: customer RENTS home
DBMS
Update (non-db op) Query
Low-level Operations
e.g. Relational Algebra Database
DBMS Software
Data Definition Language
Specifies meta-data (data types, structure, constraints)
Access control
Security, Integrity, Concurrency, Recovery
People
Database Design
Find an appropriate schema (organization of attributes into tables) based on
Needs of the entire organization Efficiency of access Ease of maintenance Logical relationships among the attributes (normalization)
Logical Design
Lower-level model for a particular kind of database (Relational vs. Hierarchical vs. Object-oriented)
Physical Design
Data structures, disk layout, etc.