Student Information System Database Design
Hi Experts,
I am developing Student Information System (SIS). I
need to know which factors should I have to consider while Database Design.
Please help. I am new to Database Design.
Note: I am using SQL-Server 2000.
Thanks.
The following script is a starter example for a student info database. Let us know if helpful.
USE tempdb;
GO
CREATE TABLE Student (
StudentID int identity(1,1) PRIMARY KEY,
FirstName varchar(30),
LastName varchar(30),
Birthdate char(8), -- example 19901023
SSNo varchar(20),
Email varchar(70),
CellPhone varchar(15),
ModifiedDate datetime default(getdate())
CREATE TABLE [Profile] (
StudentID int NOT NULL PRIMARY KEY
REFERENCES Student(StudentID),
Gender char(1),
HighSchoolGPA smallmoney,
HeightFt tinyint,
HeightIn tinyint,
BirthPlace varchar(40),
MotherName varchar(50),
FatherName varchar(50),
-- SubmittedApplication XML, -- SQL 2005 and SQL 2008 feature
ModifiedDate datetime default(getdate())
CREATE TABLE Course (
CourseID int identity(1,1) PRIMARY KEY,
Code char(8) NOT NULL UNIQUE, -- UNIQUE KEY constraint
Title varchar(90) NOT NULL,
Credits int CHECK (Credits between 1 and 5), -- CHECK constraint
ModifiedDate datetime default(getdate())
CREATE TABLE Semester (
SemesterID int identity(1,1) PRIMARY KEY,
Code char(7) NOT NULL UNIQUE, -- YYYYMON like 2010SEP
[Description] varchar(90) NOT NULL,
ModifiedDate datetime default(getdate())
-- The following is a junction (or xref) table
-- It represent many to many relationship between students and courses
CREATE TABLE Enrollment (
StudentID int
REFERENCES Student(StudentID),
CourseID int
REFERENCES Course(CourseID),
SemesterID int NOT NULL
REFERENCES Semester(SemesterID),
Grade char(2) default (''),
ModifiedDate datetime default(getdate()),
PRIMARY KEY (StudentID, CourseID),
GO
-- Population example
INSERT Student (FirstName, LastName, BirthDate, SSNo, Email, Cellphone)
VALUES('Kevin', 'Rogers', '19900315','111-22-4444',
'[email protected]','1-947-323-4444')
GO
SELECT * FROM Student
GO
/* Results
StudentID FirstName LastName Birthdate SSNo Email CellPhone ModifiedDate
1 Kevin Rogers 19900315 111-22-4444 [email protected] 1-947-323-4444 2009-01-17 08:20:54.017
INSERT Course (Code, Title, Credits)
VALUES ('CSSQLBI1','Introduction to Business Intelligence', 4)
GO
SELECT * FROM Course
GO
/* Results
CourseID Code Title Credits ModifiedDate
1 CSSQLBI1 Introduction to Business Intelligence 4 2009-01-17 08:25:23.840
INSERT Semester (Code, Description)
VALUES ('2009JAN', '2009 Spring semester - JAN to JUN')
GO
SELECT * FROM Semester
GO
/* Resutls
SemesterID Code Description ModifiedDate
1 2009JAN 2009 Spring semester - JAN to JUN 2009-01-17 08:28:10.550
INSERT Enrollment (StudentID, CourseID, SemesterID)
VALUES (1,1,1)
GO
SELECT * FROM Enrollment
GO
/* Results
StudentID CourseID SemesterID Grade ModifiedDate
1 1 1 2009-01-17 08:31:05.350
-- Upon course completion, grading UPDATE
UPDATE Enrollment SET Grade = 'A+'
WHERE StudentID = 1
AND CourseID = 1
AND SemesterID = 1
GO
SELECT * FROM Enrollment
GO
/* Results
StudentID CourseID SemesterID Grade ModifiedDate
1 1 1 A+ 2009-01-17 08:31:05.350
/* Cleanup
drop table Enrollment
drop table Profile
drop table Semester
drop table Course
drop table Student
Kalman Toth, SQL Server 2008 Training, SSAS, SSIS, SSRS, BI: www.SQLUSA.com
Similar Messages
-
Hello,
I am wondering if i would be able to use sharepoint as a student information system or if theres away i can use my access student information system for access with sharepoint?it is depend what type of information you want to store in it.You can use the OOTB feature to achieve it.
you can use BCS and connect it to your database, in this case SharePoint will be front end.
you can also take the advantage of the Access Web App.
There are many school / colleges using the SharePoint. here are few ideas
http://www.ucisa.ac.uk/groups/cisg/sharepoint.aspx
Connect teachers, students, and parents with SharePoint Server 2007
http://www.microsoft.com/casestudies/Microsoft-SharePoint-Server-2010/Boise-State-University/University-Solution-Unifies-Students-Faculty-Staff-and-Business-Critical-Systems/710000001775
https://www.youtube.com/watch?v=VgKhZey5nHg
Please remember to mark your question as answered &Vote helpful,if this solves/helps your problem. ****************************************************************************************** Thanks -WS MCITP(SharePoint 2010, 2013) Blog: http://wscheema.com/blog -
Jsp for student information system(SIS)
I am a student and studying jsp Recently for my Graduation thesis named SIS.
who can give me some advice . thank you so much.I am a student and studying jsp Recently for my Graduation thesis named SIS.
who can give me some advice . thank you so much. -
Hi everyone!!
I have been given a task to investigate and come up with an integrated all-in-one mobile student information system where students do the following:
Students should be informed of:
class changes by text
inform lecturers that they will be absent
Would be informed of upcoming seminars
Also display a map of where they are on campus
Provide them with information about rooms and buildings as they pass!so some kind of GPS
for all the above issues!, what software should I be thinking of? what hardware? what technologies etc?
what would the architecture of the potential solution be?
Regards
ShosolozaHopefully this is not some kind of "student project", if it is, then just bag it now and tell the instructor that it is not doable within your budget and time constraints.
If not, then you need to look at, in Java, J2EE. You're going to need a good deal of C along with that to make interfaces to other systems. -
DataBase Design For Inventory Systems
Sir I am doing my Final Year B.sc(Comp.sci), I am having my Oracle Project to do things.
I just wan't a Detailed DataBase Design for
Inventory Systems
Please Could you help me in terms of DataBase Design......The best way to approach a database design is to write a
specification for the application. Document what processes the help
desk technicians will do. In the process, identify what pieces of
information they work with. When you have the complete
specification written, you can then begin grouping the pieces of
information they work with together. For example, a ticket may have
a number, status, priority and a person to whom it is assigned. The
person to whom the ticket is assigned will have a name, phone
number, e-mail address and a list of technical skills.
So in this overly-simplified example, we could have a table
that contains ticket information, a table that has information
about technicians and a table of skills. Then ask your self
questions like "Can one ticket be handled by more than one
technician?" "Can one technician handle more than one ticket?" Can
a technician have more than one skill?" In this way, you can begin
seeing the one-to-one, one-to-many and many-to-many relationships
that exist. -
Database design (ERD )for Inventory Management System
Dear All,
I am going to develop a simple Inventory Management System software using C# .NET for my learning. After searching different forums, many people have suggested to first create a database design for the software. I want a database design, in short, an ERD
diagram for simple Inventory Management System which shows proper entities(tables), attributes and relationship between entities.
It would be highly helpful for me as I am newbie to C# and databases.
Thanks,
momersaleemDear Rebecca,
Thanks for you suggestions.
As I am going to develop IMS for learning purposes so I think I wouldn't need to go in detail regarding Customer name and addresses. However, I am still thinking of adding country attribute in customers' table which I think will be helpful to sort out customers.
What's the difference between a purchase and an order? They're usually the same thing, which doesn't mean you're
wrong, but what are you picturing here? Purchase entity will be used to keep record of purchases you made and an order entity will be used to keep record of orders that cutomers placed.
Pricing:
Any order system needs to manage two very distinct bits of data that are easy to confuse. The price in the Product entity is the current
price. The price in the Order entity is the selling
price. Not at all the same thing--current price is almost certainly going to change over time. Selling price won't.
Does it mean that I'll change the price attribute for product to current_price and add selling_price to order table which will help to keep record of price at the time of order?
Why did you include a quantity field in the Products table? Is it meant to represent stock on hand?
Yes you are right. It represents stock in hand.
Could you please recheck the entities relationships as I am not confirmed whether these are correct or not?
Thanks,
momersaleem -
Database design for the Project System!
Hi
I need the database design schema for the Project System .
For example with the transaction code CJ20N at the left side all the Project Hierarchy is tabulated.
I want to know the relations between tables ?
Would you please help me ?look logical database PSJ with tcode SE36
grx. A. -
Hi Experts,
IF Auto Update Statistics ENABLED in Database Design, Why we need to Update Statistics as a maintenance plan for Daily/weekly??
Vinai Kumar GandlaHi Vikki,
Many systems rely solely on SQL Server to update statistics automatically(AUTO UPDATE STATISTICS enabled), however, based on my research, large tables, tables with uneven data distributions, tables with ever-increasing keys and tables that have significant
changes in distribution often require manual statistics updates as the following explanation.
1.If a table is very big, then waiting for 20% of rows to change before SQL Server automatically updates the statistics could mean that millions of rows are modified, added or removed before it happens. Depending on the workload patterns and the data,
this could mean the optimizer is choosing a substandard execution plans long before SQL Server reaches the threshold where it invalidates statistics for a table and starts to update them automatically. In such cases, you might consider updating statistics
manually for those tables on a defined schedule (while leaving AUTO UPDATE STATISTICS enabled so that SQL Server continues to maintain statistics for other tables).
2.In cases where you know data distribution in a column is "skewed", it may be necessary to update statistics manually with a full sample, or create a set of filtered statistics in order to generate query plans of good quality. Remember,
however, that sampling with FULLSCAN can be costly for larger tables, and must be done so as not to affect production performance.
3.It is quite common to see an ascending key, such as an IDENTITY or date/time data types, used as the leading column in an index. In such cases, the statistic for the key rarely matches the actual data, unless we update the Statistic manually after
every insert.
So in the case above, we could perform manual statistics updates by
creating a maintenance plan that will run the UPDATE STATISTICS command, and update statistics on a regular schedule. For more information about the process, please refer to the article:
https://www.simple-talk.com/sql/performance/managing-sql-server-statistics/
Regards,
Michelle Li -
SIMPLE Database Design Problem !
Mapping is a big problem for many complex applications.
So what happens if we put all the tables into one table called ENTITY?
I have more than 300 attributeTypes.And there will be lots of null values in the records of that single table as every entityType uses the same table.
Other than wasting space if I put a clustered index on my entityType coloumn in that table.What kind of performance penalties to I get?
Definition of the table
ENTITY
EntityID > uniqueidentifier
EntityType > Tells the entityTypeName
Name >
LastName >
CompanyName > 300 attributeTypes
OppurtunityPeriod >
PS:There is also another table called RELATION that points the relations between entities.>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
check the coloumn with WHERE _entityType='PERSON'
as there is is clustered index on entityType...there
is NO performance decrease.
there is also a clustered index on RELATION table on
relationType
when we say WHERE _entityType ='PERSON' or
WHERE relationType='CONTACTMECHANISM'.
it scans the clustered index first.it acts like a
table as it is physically ordered.I was thinking in terms of using several conditions in the same select, such as
WHERE _entityType ='PERSON'
AND LastName LIKE 'A%' In your case you have to use at least two indices, and since your clustered index comes first ...
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Have you ever thought of using constraints in your
modell? How would you realize those?
...in fact we did.We have arranged the generic object
model in an object database.The knowledge information
is held in the object database.So your relational database is used only as a "simple" storage, everything has go through your object database.
But the data schema is held in the RDBMS with code
generation that creates a schema to hold data.If you think that this approach makes sense, why not.
But in able to have a efficent mapping and a good
performance we have thought about building only one
table.The problem is we know we are losing some space
but the thing is harddisk is much cheaper than RAM
and CPU.So our trade off concerated on the storage
cost.But I still wonder if there is a point that I
have missed in terms performance?Just test your approach by using sufficiently data - only you know how many records you have to store in your modell.
PS: it is not wise effective using generic object
models also in object databases as CPU cost is a lot
when u are holding the data.I don't know if I'd have taken your approach - using two database systems to hold data and business logic.
PS2: RDBMS is a value based system where object
databases are identity based.we are trying to be in
the gray area of both worlds.Like I wrote: if your approach works and scales to the required size, why not? I would assume that you did a load test with your approach.
What I would question though is that your discussing a "SIMPLE Database Design" problem. I don't see anything simple in your approach when it comes to implementation.
C. -
DataBase Design For InvoiceSystems
Sir I am doing my Final Year B.sc(Comp.sci), I am having my Oracle Project to do things.
I just wan't a Detailed DataBase Design for
Invoice Systems
Please Could you help me in terms of DataBase Design......The best way to approach a database design is to write a
specification for the application. Document what processes the help
desk technicians will do. In the process, identify what pieces of
information they work with. When you have the complete
specification written, you can then begin grouping the pieces of
information they work with together. For example, a ticket may have
a number, status, priority and a person to whom it is assigned. The
person to whom the ticket is assigned will have a name, phone
number, e-mail address and a list of technical skills.
So in this overly-simplified example, we could have a table
that contains ticket information, a table that has information
about technicians and a table of skills. Then ask your self
questions like "Can one ticket be handled by more than one
technician?" "Can one technician handle more than one ticket?" Can
a technician have more than one skill?" In this way, you can begin
seeing the one-to-one, one-to-many and many-to-many relationships
that exist. -
Why sql sever database design is used for essbas?
Hi
I am new to the Hyperion technology . i would like to know why do we use any RDBM like sql sever database design for essbase which is itself is the database.What is the main difference between these two databases?
My understanding is that Essbase act as same as SSAS for cube and dimension building.And they use database design for storing the tables and other information.
ThanksA relational database can be used for a number of reasons with Essbase (and is required in some instances). These include
1. a repository for system tables for Shared services, EAS, Studio,EPMA, Workspace, Financial Management etc
2. A data source for loading Essbase
3. A work area for transformations -
Hi,
I'm an DBA and i was assigned to design a new database(fresh) in oracle 11gR2 in windows platform for a project. Since, i'm new to database design, getting confusion on what perspective to approach and where to begin.
Can anyone please help on this.
Note: URL's are welcome.1011442 wrote:
Hi,
Thanks for providing the link.
The link that you sounds good and providing much info on considerations in creating a database and schema security.
But, i want the logical design part.
Assume that the database design for College Management System. It might have enrollment module, result module, staff module, etc., including more schema objects. I'm expecting the procedures or steps involving in such designs & how to design.
It starts with interviewing the end-user and determining their requirements .. especially flushing out all the entities (student, staff member, department, course, class, etc, etc, etc) and their attributes, then determining the relationship between said entities and attributes. Those entities, attributes, and relationships will be your logical database design. -
Hello All
I have to design database for a DSS.
It is basically a MIS project which will be used for reporting purposes
Can anyone please tell me what are the considerations to be made
while designing for such a system.
Any documents or web links will be of great help
Thanks in advance
Ashwin N.The best way to approach a database design is to write a
specification for the application. Document what processes the help
desk technicians will do. In the process, identify what pieces of
information they work with. When you have the complete
specification written, you can then begin grouping the pieces of
information they work with together. For example, a ticket may have
a number, status, priority and a person to whom it is assigned. The
person to whom the ticket is assigned will have a name, phone
number, e-mail address and a list of technical skills.
So in this overly-simplified example, we could have a table
that contains ticket information, a table that has information
about technicians and a table of skills. Then ask your self
questions like "Can one ticket be handled by more than one
technician?" "Can one technician handle more than one ticket?" Can
a technician have more than one skill?" In this way, you can begin
seeing the one-to-one, one-to-many and many-to-many relationships
that exist. -
Flex Student Information Management Portal help
I am building a student information management portal in flex /php (using AMFPHP), but being a Flex Newbie, I have been researching endless on the internet for help to kick start my project. My project will be interfacing with an oracle database system (which is not an issue, I have already built connection classes in php in my past projects). My problem is binding the data. It appears in my opinion that the data grid is the only way to output the data which will not work efficiently in my case. I need a fluid and flexible layout to present the data within the page. Can the query results be binded say in labels etc and if so, how can this be achieved. Any pointers to tutorial sites for beginners will be greatly appreciated. Thanks
Google "Flex in a week".
Yes, you can bind labels, but given that you are asking the question, you really have a way to go in knowing how to build a portal. -
Database design to support parameterised interface with MS Excel
Hi, I am a novice user of SQL Server and would like some advice on how to solve a problem I have. (I hope I have chosen the correct forum to post this question)
I have created a SQL Server 2012 database that comprises approx 10 base tables, with a further 40+ views that either summarise the base table data in various ways, or build upon other views to create more complex data sets (upto 4 levels of view).
I then use EXCEL to create a dashboard that has multiple pivot table data connections to the various views.
The users can then use standard excel features - slicers etc to interrogate the various metrics.
The underlying database holds a single days worth of information, but I would like to extend this to cover multiple days worth of data, with the excel spreadsheet having a cell that defines the date for which information is to
be retrieved.(The underlying data tables would need to be extended to have a date field)
I can see how the excel connection string can be modified to filter the results such that a column value matches the date field,
but how can this date value be passed down through all the views to ensure that information from base tables is restricted for the specied date, rather than the final results set being passed back to excel - I would rather not have the server resolve the views
for the complete data set.
I considered parameterisation of views, but I dont believe views support parameters, I also considered stored procedures, but I dont believe that stored procedures allow result sets to be used as pseudo tables.
What other options do I have, or have I failed to grasp the way SQL server creates its execution plans and simply having the filter at the top level will ensure the result set is minimised at the lower level? (I dont really want the time taken for the dashboard
refresh to increase - it currently takes approx 45 seconds following SQL Server Engine Tuning Advisor recommendations)
As an example of 3 of the views,
Table A has a row per system event (30,000+ per day), each event having an identity, a TYPE eg Arrival or Departure, with a time of event, and a planned time for the event (a specified identity will have a sequence of Arrival and Departure events)
View A compares seperate rows to determine how long between the Arrival and Departure events for an identity
View B compares seperate rows to determine how long between planned Arrival and Departure events for an identity
View C uses View A and view B to provide the variance between actual and planned
Excel dashboard has graphs showing information retrieved from Views A, B and C. The dashboard is only likely to need to query a single days worth of information.
Thanks for your time.You are posting in the database design forum but it seems to me that you have 2 separate but highly dependent issues - neither of which is really database design related at this point. Rather you have an user interface issue and an database programmability
issue. Those I cannot really address since much of that discussion requires knowledge of your users, how they interface with the database, what they use the data for, etc. In addition, it seems that Excel is the primary interface for your users
- so it may be that you should post your question to an excel forum.
However, I do have some comments. First, views based on views is generally a bad approach. Absent the intention of indexing (i.e., materializing) the views, the db engine does nothing different for a view than it does for any ad-hoc query.
Unfortunately, the additional layering of logic can impede the effectiveness of the optimizer. The more complex your views become and the deeper the layering, the greater the chance that you befuddle the optimizer.
I would rather not have the server resolve the views for the complete data set
I don't understand the above statement but it scares me. IMO, you DO want the server to do as much work as possible since it is closest to the data and has (or should have) the resources to access and manipulate the data and generate the desired
results. You DON'T want to move all the raw data involved in a query over the network and into the client machine's storage (memory or disk) and then attempt to compute the desired values.
I considered parameterisation of views, but I dont believe views support parameters, I also considered stored procedures, but I dont believe that stored procedures allow result sets to be used as pseudo tables.
Correct on the first point, though there is such a thing as a TVF which is similar in effect. Before you go down that path, let's address the second statement. I don't understand that last bit about "used as pseudo tables" but that sounds more
like an Excel issue (or maybe an assumption). You can execute a stored procedure and use/access the resultset of this procedure in Excel, so I'm not certain what your concern is. User simplicity perhaps? Maybe just a terminology issue? Stored
procedures are something I would highly encourage for a number of reasons. Since you refer to pivoting specifically, I'll point out that sql server natively supports that function (though perhaps not in the same way/degree Excel does). It
is rather complex tsql - and this is one reason to advocate for stored procedures. Separate the structure of the raw data from the user.
(I dont really want the time taken for the dashboard refresh to increase - it currently takes approx 45 seconds following SQL Server Engine Tuning Advisor recommendations)
DTA has its limitations. What it doesn't do is evaluate the "model" - which is where you might have more significant issues. Tuning your queries and indexing your tables will only go so far to compensate for a poorly designed schema (not that
yours is - just a generalization). I did want to point out that your refresh process involves many factors - the time to generate a resultset in the server (including plan compilation, loading the data from disk, etc.), transmitting that data over the
network, receiving and storing the resultset in the client application, manipulating the resultset into the desired form/format), and then updating the display. Given that, you need to know how much time is spent in each part of that process - no sense
wasting time optimizing the smallest time consumer.
So now to your sample table - Table A. First, I'll give you my opinion of a flawed approach. Your table records separate facts about an entity as multiple rows. Such an approach is generally a schema issue for a number of reasons.
It requires that you outer join in some fashion to get all the information about one thing into a single row - that is why you have a view to compare rows and generate a time interval between arrival and departure. I'll take this a step further and assume
that your schema/code likely has an assumption built into it - specifically that a "thing" will have no more than 2 rows and that there will only be one row with type "arrival" and one row with type "departure". Violate that assumption and things begin to
fall apart. If you have control over this schema, then I suggest you consider changing it. Store all the facts about a single entity in a single row. Given the frequency that I see this pattern, I'll guess that you
cannot. So let's move on.
30 thousand rows is tiny, so your current volume is negligible. You still need to optimize your tables based on usage, so you need to address that first. How is the data populated currently? Is it done once as a batch? Is it
done throughout the day - and in what fashion (inserts vs updates vs deletes)? You only store one day of data - so how do you accomplish that specifically? Do you purge all data overnight and re-populate? What indexes
have you defined? Do all tables have a clustered index or are some (most?) of them heaps? OTOH, I'm going to guess that the database is at most a minimal issue now and that most of your concerns are better addressed at the user interface
and how it accesses your database. Perhaps now is a good time to step back and reconsider your approach to providing information to the users. Perhaps there is a better solution - but that requires an understanding of your users, the skillset of
everyone involved, what you have to work with, etc. Maybe just some advanced excel training? I can't really say and it might be a better question for a different forum.
One last comment - "identity" has a special meaning in sql server (and most database engines I'm guessing). So when you refer to identity, do you refer to an identity column or the logical identity (i.e., natural key) for the "thing" that Table A is
attempting to model?
Maybe you are looking for
-
Can you change your security question on your itunes account ?
i created an itunes account and can't remember my security questions is there any way you can change them ?
-
Random lines in PDF inserted in InDesign document
I have been generating PDF files from Alibre Design (MCAD) since 2005 with no problem. I 'print' the pages with the current Adobe Acrobat Pro and then place them in the pages of my magazine layout in InDesign. Recently, when I place a PDF generated f
-
Error when connecting to database from connection manager
New installation of JDeveloper 11r2. java.lang.NullPointerException at oracle.dms.context.DMSContextManager.getContext(DMSContextManager.java:437) at oracle.dms.context.ExecutionContext.get(ExecutionContext.java:445) at oracle.dms.cont
-
Which one is officially supported by Oracle on Redhat Linux ? thank you.
-
[solved] Where do Gecko and Kazehakase store their files?
Hi everyone. I'm running Arch Linux on a very basic configuration: it's an EeePC with a 2 Gb HDD. So, it's no surprise that i'm fighting for free space. With Google Chrome it's relatively easy, as i have a shortcut for it which invokes this: google-c