Documente Academic
Documente Profesional
Documente Cultură
For a table to be in first normal form, data must be broken up into the smallest
units possible. For example, the following table is not in first normal form.
Sally Singer 123 Broadway New York, NY, 11234 (111) 222-3345
Jason Jumper 456 Jolly Jumper St. Trenton NJ, 11547 (222) 334-5566
To conform to first normal form, this table would require additional fields.
The name field should be divided into first and last name and the address should
be divided by street, city state, and zip like this.
564 Sally Singer 123 Broadway New York NY 11234 (111) 222-3345
565 Jason Jumper 456 Jolly Jumper St. Trenton NJ 11547 (222) 334-5566
TS-89 Gilroy Gladstone US Corp. 14 hrs Taggarts 26 hrs Kilroy Inc. 9 hrs
The problem here is that each representative can have multiple clients not
all will have three. Some may have less as is the case in the second record,
tying up storage space in your database that is not being used, and some may
have more, in which case there are not enough fields. The solution to this is
to add a record for each new piece of information.
Rep ID Rep First Name Rep Last Name Client Time With Client
Notice the splitting of the first and last name fields again.
This table is now in first normal form. Note that by avoiding repeating groups
of fields, we have created a new problem in that there are identical values
in the primary key field, violating the rules of the primary key. In order to
remedy this, we need to have some other way of identifying each record. This
can be done with the creation of a new key called client ID.
Rep ID* Rep First Name Rep Last Name Client ID* Client Time With Client
This new field can now be used in conjunction with the Rep ID field to create
a multiple field primary key. This will prevent confusion if ever more than
one Representative were to serve a single client.
The second normal form applies only to tables with multiple field primary
keys. Take the following table for example.
Rep ID* Rep First Name Rep Last Name Client ID* Client Time With Client
The second normal form states that each field in a multiple field primary key
table must be directly related to the entire primary key. Or in other words,
each non-key field should be a fact about all the fields in the primary key.
Only fields that are absolutely necessary should show up in our table, all other
fields should reside in different tables. In order to find out which
fields are necessary we should ask a few questions of our database. In our
preceding example, I should ask the question "What information is this
table meant to store?" Currently, the answer is not obvious. It may be
meant to store information about individual clients, or it could be
holding data for employees time cards. As a further example, if my
database is going to contain records of employees I may want a table of
demographics and a table for payroll. The demographics will have all the
employees personal information and will assign them an ID number. I should
not have to enter the data twice, the payroll table on the other hand should
refer to each employee only by their ID number. I can then link the two tables
by a relationship and will then have access to all the necessary
data.
In the table of the preceding example we are devoting three field to the
identification of the employee and two to the identification of the
client. I could identify them with only one field each -- the primary
key. I can then take out the extraneous fields and put them in their own
table. For example, my database would then look like the following.
Client
Client Name
ID*
978 US Corp
665 Taggarts
221 Italiana
982 Linkers
These tables are now in normal form. By splitting off the unnecessary
information and putting it in its own tables, we have eliminated redundancy and
put our first table in second normal form. These tables are now ready to
be linked through relationship to each other.
Third normal form is the same as second normal form except that it only
refers to tables that have a single field as their primary key. In other
words, each non-key field in the table should be a fact about the primary key.
Either of the preceding two tables act as an example of third normal form since
all the fields in each table are necessary to describe the primary key.
Once all the tables in a database have been taken through the third normal
form, we can begin to set up relationships.
Class Questions
2. Can you prevent your class from being inherited by another class?
Yes. The keyword “sealed” will prevent the class from being inherited.
3. Can you allow a class to be inherited, but prevent the method from being over-ridden?
Yes. Just leave the class public and make the method sealed.
7. Why can’t you specify the accessibility modifier for methods inside the interface?
They all must be public, and are therefore public by default.
9. What happens if you inherit multiple interfaces and they have conflicting method names?
It’s up to you to implement the method inside your own class, so implementation is left entirely
up to you. This might cause a problem on a higher-level scale if similarly named methods from
different interfaces expect different data, but as far as compiler cares you’re okay.
To Do: Investigate
10.What’s the difference between an interface and abstract class?
In an interface class, all methods are abstract - there is no implementation. In an abstract class
some methods can be concrete. In an interface class, no accessibility modifiers are allowed. An
abstract class may have accessibility modifiers.
1. What’s the implicit name of the parameter that gets passed into the set method/property of
a class?
Value. The data type of the value parameter is defined by whatever data type the property is
declared as.
4. Can you declare an override method to be static if the original method is not static?
No. The signature of the virtual method must remain the same. (Note: Only the keyword virtual
is changed to keyword override)
6. If a base class has a number of overloaded constructors, and an inheriting class has a
number of overloaded constructors; can you enforce a call from an inherited constructor to
a specific base constructor?
Yes, just place a colon, and then keyword base (parameter list to invoke the appropriate
constructor) in the overloaded constructor definition inside the inherited class.
1. Is XML case-sensitive?
Yes.
3. How do you generate documentation from the C# file commented properly with a
command-line compiler?
Compile it with the /doc switch.
3. What’s the difference between the Debug class and Trace class?
Documentation looks the same. Use Debug class for debug builds, use Trace class for both
debug and release builds.
7. What are three test cases you should go through in unit testing?
1. Positive test cases (correct data, correct output).
2. Negative test cases (broken or missing data, proper handling).
3. Exception test cases (exceptions are thrown and caught properly).
6. Between Windows Authentication and SQL Server Authentication, which one is trusted and
which one is untrusted?
Windows Authentication is trusted because the username and password are checked with the
Active Directory, the SQL Server authentication is untrusted, since SQL Server is the only
verifier participating in the transaction.
7. What does the Initial Catalog parameter define in the connection string?
The database name to connect to.
Assembly Questions