UNIVERSITY OF CENTRAL FLORIDA
DEPARTMENT OF ENGINEERING TECHNOLOGY
CET 4429 - APPLIED DATABASE II
Dr. Eaglin
Spring 2008
Group 4
Group Project
Table of Contents
Background requirements. 3
Data Dictionary. 5
Database Schema Scripts. 8
Database Schema Diagrams. 17
Schema of all views (and diagrams). 18
Documentation of all stored procedures. 24
Documentation of code plan. 38
Security plan. 40
Indexing plan and maintenance plan. 41
Proof of deployment in approved database product. 43
- Who are the stakeholders?
The stakeholders in this program are the parents who want to monitor their child’s success and study habits in this area. Other stakeholders are the teachers who want to be able to more vividly instruct and monitor their students as well as keep them motivated and interested in learning. Lastly, but most importantly, are the students who will learn more efficiently about spelling.
- Why are you building this system?
We want to provide a tool to assist teachers with teaching, students with learning and parents with teaching and monitoring.
The parents, teachers and students who attend classes who want to learn better spelling and English skills will use the program.
The program will allow the teacher or parent of a student to record and enter words into the system. The teacher will then be able to create quizzes of 10 words and assign them to a student or class of students. The students will be able to take the quizzes and then the teacher and parent will be able to check the grades of their assigned students.
- Names and Contact Information for Group Members
|
Name
|
E-mail Address
|
|
Olga Abouazza
|
olgaAbouazza@yahoo.com
|
|
Tyrell Baker
|
baker@envisioncu.com
|
|
Kimberly Fowler
|
kimberleyfowler69@yahoo.com
|
|
Ryan Pendry
|
ryan.pendry@gmail.com
|
|
Gleb Teper
|
glebteper@gmail.com
|
- Introduction Statement - 3-4 sentences overview of entire project
Our proposed project is a web-based application designed to help children improve their spelling abilities. The target usage for this program will be a school environment in which teachers and parents can use the software to create spelling quizzes for students. The program can also be used in households for parents to spend important learning time with their children. Our main objective is to provide an effective solution to spelling education which can be used by teachers, parents, and students to both improve and track spelling ability.
- Purpose - why are you creating this database?
The purpose of this project is for our group to use a database management system and the SQL programming language to design a useable program that multiple users can enter or retrieve information from while maintaining the integrity of the data. Our group has chosen to do this by building the “Anna’s Spelling Helper” application. This application is meant to be useable by teachers to create spelling quizzes for students using words and saved sound files. Additionally, the application can be used by students to take the spelling quizzes and by parents to monitor their child’s grades and progress.
- Background - where are you going to acquire information about the database you are designing, people and resources? What standards will apply?
For the design of the spelling helper application, our group will be looking for the most suitable technologies to implement the project design. We believe that parents and teachers would be the most valuable resource to provide information for the desired outcome. If the educators enjoy the application, then the children will as well. During their early years, children can benefit from simple and user-friendly applications to learn spelling.
Resources: The internet will be our best friend to accomplish this desired application. http://www.dictionary.com is a website where the whole dictionary is available for us to add our words.
Standards: We will follow the NIEM naming conventions when naming the fields used in the database creation. These standards are available at http://www.niem.gov.
- Outcome - What will be the final product of your work?
Our expected final outcome is the completion and distribution of a fully functional spelling helper application. We anticipate that our application will be able to correctly perform all expected tasks and that we can proudly broaden awareness of the application to schools and households. We will have a complete data dictionary to serve as a reference for future updates and to ensure that our database design is efficient and encompasses all of our goals. Our final application documentation will include stored procedures, plans for security, indexing, and maintenance, and database schema diagrams and scripts. We plan for this work to be deployed in an approved database product. The education that this application provides for students is an intangible final product, yet is also possibly the most important product of all.
Since your documentation is required to be turned in on a wiki or web site, the location of the site should be specified.
Here is the URL of our wiki web site: http://cet4429group4.pbwiki.com
Teacher Table - stores the teacher's first and last name, with an identity-specification enabled TeacherID. The TeacherSchoolID is an ID assigned by the school and only exists to uniquely identify teachers in the database (similar to a Social Security Number).
|
Attributes
|
Data Type
|
Null/Not Null
|
Notes
|
|
TeacherID (PK)
|
int
|
Not Null
|
Identifies The teacher Table
|
|
TeacherSchoolID (AK)
|
int
|
Not Null
|
A Unique Constraint
|
|
TeacherSurName
|
varchar(50)
|
Not Null
|
Identifies Teacher’s Last Name
|
|
TeacherGivenName
|
varchar(50)
|
Not Null
|
Identifies Teacher’s First Name
|
Student Table - ID-spec enabled PK, StudentSchoolID is same purpose as TeacherSchoolID.
|
Attribute
|
Data Type
|
Null/Not Null
|
Notes
|
|
StudentID (PK)
|
int
|
Not Null
|
Identifies the Student Table
|
|
TeacherID (FK)
|
int
|
Not Null
|
References the primary key in Teacher
|
|
ParentID (FK)
|
int
|
Not Null
|
References the primary key in Parent
|
|
StudentSchoolID (AK)
|
int
|
Not Null
|
Unique Constraint
|
|
StudentSurName
|
varchar(50)
|
Not Null
|
Identifies the Student Last Name
|
|
StudentGivenName
|
varchar(50)
|
Not Noll
|
Identifies the Student Given Name
|
|
StudentBirthDate
|
datetime
|
Not Null
|
Identifies the Student Birthday
|
|
ClassID
|
int
|
Not Null
|
Identifies the Student Class List
|
Parent Table - ID-spec enabled PK - The parent table stores information for a parent. Parents are uniquely identified by a ParentID which is the primary key. The parent table also stores a ParentSurName and a ParentGivenName. Parents are referenced to a student using the StudentID foreign key.
|
Attribute Name
|
DataType
|
Null/Not Null
|
Notes
|
|
ParentID (PK)
|
int
|
Not Null
|
Identifies Parents
|
|
ParentSurName
|
varchar(50)
|
Not Null
|
Identifies Parent Last Name
|
|
ParentGivenName
|
varchar(50)
|
Not Null
|
Identifies Parent First Name
|
|
StudentID (FK)
|
int
|
Not Null
|
References the primary key in students
|
Word Table - ID-spec enabled PK, the word table stores all of the words, their definitions, and the locationn of the sound associated with each word. Each word is identified by a primary key wordID.
|
Attribute
|
Data Type
|
Null/ Not Null
|
Notes
|
|
WordID (PK)
|
int
|
Not Null
|
Identifies the Word table
|
|
WordNameText (AK)
|
varchar(50)
|
Not Null
|
Unique Constraint/the actual word
|
|
WordDefinitionText
|
varchar(50)
|
Null
|
Definition of word
|
|
SoundLocationText
|
varchar(50)
|
Not Null
|
URL to the sound file
|
QuizWords Table - The QuizWords table uses StudentQuizID as a unique identifier which is the primary key for the table. This table allows a teacher to create a Quiz by entering a StudentQuizID, TeacherID, and QuizDurationTime. In addition, the teacher enters 10 quiz words for the quiz.
|
Attribute
|
DataType
|
Null/NotNull
|
Notes
|
|
StudentQuizID(PK)
|
int
|
Not Null
|
Identifies Quiz Words Table
|
|
TeacherID (FK)
|
int
|
Not Null
|
References the primary key in Teacher
|
|
QuizDurationTime
|
datetime
|
Not Null
|
The Length of the Quiz
|
|
QuizWord1
|
char(30)
|
Not Null
|
The First Word in Quiz
|
|
QuizWord2
|
char(30)
|
Not Null
|
The Second Word in Quiz
|
|
QuizWord3
|
char(30)
|
Not Null
|
The Third Word in Quiz
|
|
QuizWord4
|
char(30)
|
Not Null
|
The Fourth Word in Quiz
|
|
QuizWord5
|
char(30)
|
Not Null
|
The Fifth Word in Quiz
|
|
QuizWord6
|
char(30)
|
Not Null
|
The Sixth Word in Quiz
|
|
QuizWord7
|
char(30)
|
Not Null
|
The Seventh Word in Quiz
|
|
QuizWord8
|
char(30)
|
Not Null
|
The Eighth Word in Quiz
|
|
QuizWord9
|
char(30)
|
Not Null
|
The Ninth Word in Quiz
|
|
QuizWord10
|
char(30)
|
Not Null
|
The Tenth Word in Quiz
|
Results Table- ID-spec enabled PK, Stores the results of the students attempts to spell the words they hear (QuizResponse#) and also the physical words themselves (Question#Spelling) comparison and grading. StudentQuizID, StudentID and TeacherID are foreign keyed to this table to connect the student and teacher to the quiz being taken and the results.
|
Attribute
|
Data Type
|
Null/ Not Null
|
Notes
|
|
QuizResultsID (PK)
|
int
|
Not Null
|
Identifies Results Table
|
|
StudentQuizID (FK)
|
int
|
Not Null
|
References the primary key in QuizWords
|
|
StudentID (FK)
|
int
|
Not Null
|
References the primary key in Students
|
|
TeacherID (FK)
|
int
|
Not Null
|
References the primary key in Teacher
|
|
QuizResponse1
|
varchar(50)
|
Not Null
|
The Student response to First word
|
|
QuizResponse2
|
varchar(50)
|
Not Null
|
The Student response to Second word
|
|
QuizResponse3
|
varchar(50)
|
Not Null
|
The Student response to Third word
|
|
QuizResponse4
|
varchar(50)
|
Not Null
|
The Student response to Fourth word
|
|
QuizResponse5
|
varchar(50)
|
Not Null
|
The Student response to Fifth word
|
|
QuizResponse6
|
varchar(50)
|
Not Null
|
The Student response to Sixth word
|
|
QuizResponse7
|
varchar(50)
|
Not Null
|
The Student response to Seventh word
|
|
QuizResponse8
|
varchar(50)
|
Not Null
|
The Student response to Eighth word
|
|
QuizResponse9
|
varchar(50)
|
Not Null
|
The Student response to Ninth word
|
|
QuizResponse10
|
varchar(50)
|
Not Null
|
The Student response to Tenth word
|
|
Question1Spelling
|
varchar(50)
|
Not Null
|
The first word in the quiz
|
|
Question2Spelling
|
varchar(50)
|
Not Null
|
The Second word in the quiz
|
|
Question3Spelling
|
varchar(50)
|
Not Null
|
The Third word in the quiz
|
|
Question4Spelling
|
varchar(50)
|
Not Null
|
The Fourth word in the quiz
|
|
Question5Spelling
|
varchar(50)
|
Not Null
|
The fifth word in the quiz
|
|
Question6Spelling
|
varchar(50)
|
Not Null
|
The Sixth word in the quiz
|
|
Question7Spelling
|
varchar(50)
|
Not Null
|
The Seventh word in the quiz
|
|
Question8Spelling
|
varchar(50)
|
Not Null
|
The Eighthword in the quiz
|
|
Question9Spelling
|
varchar(50)
|
Not Null
|
The Ninth word in the quiz
|
|
Question10Spelling
|
varchar(50)
|
Not Null
|
The Tenth word in the quiz
|
The Student Results Table – ID-spec enabled PK, Stores the StudentQuizID (quiz assigned to the student), the Results of the Quiz (QuizResultsID) and the QuizScore and ResultsDateTime (when the quiz was taken). This allows the PK Identity field, StudentResults ID, to show the foreign keys (Student ID, StudentQuizID, QuizResultsID) how well or poorly the student did on the quiz and the time it took to complete it.
|
Attribute
|
Data Type
|
Null/Not Null
|
Notes
|
|
StudentResultsID (PK)
|
int
|
Not Null
|
Identifies the Student Results Table
|
|
StudentID (FK)
|
int
|
Not Null
|
Refences the primary key in student
|
|
StudentQuizID (FK)
|
int
|
Not Null
|
Refences the primary key in QuizWords
|
|
QuizResultsID (FK)
|
int
|
Null
|
Refences the primary key in Results Table
|
|
QuizScore
|
int
|
Null
|
This will be calculates Using the stored procedure
|
|
ResultsDateTime
|
datetime
|
Null
|
The Results Time
|
Student Progress Table – ID-spec enabled PK, Stores the progress of each student as they complete the quizzes assigned by the teachers with an Identity-enabled StudentProgressID. The Student ID and ParentID are foreign keys to their respective tables so that the NumberofQuizzesTaken and NumberofQuizzesPassed can be recoreded for each Student and enabled for each Student and Parent to see.
|
Attribute
|
Data Type
|
Null/Not Null
|
Notes
|
|
StudentProgressID (PK)
|
int
|
Not Null
|
Identifies the Student Progress Table
|
|
StudentID (FK)
|
int
|
Not Null
|
References The Primary key in Student
|
|
ParentID (FK)
|
int
|
Not Null
|
References The Primary key in Parent
|
|
NumberOfQuizzesTaken
|
int
|
Not Null
|
The Number of times the quiz is taken
|
|
NumberofQuizzesPassed
|
int
|
Null
|
The Number of times the quiz is passed
|
Database Schema Scripts
The Parent Table Script
USE [GroupProject_CET4429]
GO
/****** Object: Table [dbo].[Parent] Script Date: 04/21/2008 02:38:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Parent](
[[ParentID] [int] IDENTITY(1,1) NOT NULL,
[StudentID] [int] NULL,
[ParentSurName] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[ParentGivenName] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
CONSTRAINT [PK_Parent] PRIMARY KEY CLUSTERED
(
[ParentID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
ALTER TABLE [dbo].[Parent] WITH CHECK ADD CONSTRAINT [FK_Parent_Student] FOREIGN KEY([StudentID])
REFERENCES [dbo].[Student] ([StudentID])
GO
ALTER TABLE [dbo].[Parent] CHECK CONSTRAINT [FK_Parent_Student]
The QuizWords Table Script
USE [GroupProject_CET4429]
GO
/****** Object: Table [dbo].[QuizWords] Script Date: 04/21/2008 02:38:17 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[QuizWords](
[StudentQuizID] [int] IDENTITY(1,1) NOT NULL,
[TeacherID] [int] NOT NULL,
[QuizDurationTime] [datetime] NOT NULL,
[QuizWord1] [char](30) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[QuizWord2] [char](30) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[QuizWord3] [char](30) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[QuizWord4] [char](30) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[QuizWord5] [char](30) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[QuizWord6] [char](30) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[QuizWord7] [char](30) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[QuizWord8] [char](30) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[QuizWord9] [char](30) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[QuizWord10] [char](30) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
CONSTRAINT [PK_QuizWords] PRIMARY KEY CLUSTERED
(
[StudentQuizID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
ALTER TABLE [dbo].[QuizWords] WITH CHECK ADD CONSTRAINT [FK_QuizWords_Teacher] FOREIGN KEY([TeacherID])
REFERENCES [dbo].[Teacher] ([TeacherID])
GO
ALTER TABLE [dbo].[QuizWords] CHECK CONSTRAINT [FK_QuizWords_Teacher]
The Results Table Script
USE [GroupProject_CET4429]
GO
/****** Object: Table [dbo].[Results] Script Date: 04/21/2008 02:38:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Results](
[QuizResultsID] [int] IDENTITY(1,1) NOT NULL,
[StudentQuizID] [int] NOT NULL,
[StudentID] [int] NOT NULL,
[TeacherID] [int] NOT NULL,
[QuizResponse1] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[QuizResponse2] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[QuizResponse3] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[QuizResponse4] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[QuizResponse5] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[QuizResponse6] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[QuizResponse7] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[QuizResponse8] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[QuizResponse9] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[QuizResponse10] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[Question1Spelling] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[Question2Spelling] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[Question3Spelling] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[Question4Spelling] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[Question5Spelling] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[Question6Spelling] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[Question7Spelling] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[Question8Spelling] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[Question9Spelling] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[Question10Spelling] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
CONSTRAINT [PK_Results] PRIMARY KEY CLUSTERED
(
[QuizResultsID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
ALTER TABLE [dbo].[Results] WITH CHECK ADD CONSTRAINT [FK_Results_QuizWords] FOREIGN KEY([StudentQuizID])
REFERENCES [dbo].[QuizWords] ([StudentQuizID])
GO
ALTER TABLE [dbo].[Results] CHECK CONSTRAINT [FK_Results_QuizWords]
GO
ALTER TABLE [dbo].[Results] WITH CHECK ADD CONSTRAINT [FK_Results_Student] FOREIGN KEY([StudentID])
REFERENCES [dbo].[Student] ([StudentID])
GO
ALTER TABLE [dbo].[Results] CHECK CONSTRAINT [FK_Results_Student]
GO
ALTER TABLE [dbo].[Results] WITH CHECK ADD CONSTRAINT [FK_Results_Teacher] FOREIGN KEY([TeacherID])
REFERENCES [dbo].[Teacher] ([TeacherID])
GO ALTER TABLE [dbo].[Results] CHECK CONSTRAINT [FK_Results_Teacher]
The Student Table Script
USE [GroupProject_CET4429]
GO
/****** Object: Table [dbo].[Student] Script Date: 04/21/2008 02:38:39 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Student](
[StudentID] [int] IDENTITY(1,1) NOT NULL,
[TeacherID] [int] NOT NULL,
[ParentID] [int] NOT NULL,
[StudentSchoolID] [int] NOT NULL,
[StudentSurName] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[StudentGivenName] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[StudentBirthDate] [datetime] NOT NULL,
[ClassID] [int] NULL,
CONSTRAINT [PK_Student] PRIMARY KEY CLUSTERED
(
[StudentID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
CONSTRAINT [StudentConstraint] UNIQUE NONCLUSTERED
(
[StudentSchoolID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
ALTER TABLE [dbo].[Student] WITH CHECK ADD CONSTRAINT [FK_Student_Parent1] FOREIGN KEY([ParentID])
REFERENCES [dbo].[Parent] ([ParentID])
GO
ALTER TABLE [dbo].[Student] CHECK CONSTRAINT [FK_Student_Parent1]
GO
ALTER TABLE [dbo].[Student] WITH CHECK ADD CONSTRAINT [FK_Student_Teacher1] FOREIGN KEY([TeacherID])
REFERENCES [dbo].[Teacher] ([TeacherID])
GO
ALTER TABLE [dbo].[Student] CHECK CONSTRAINT [FK_Student_Teacher1]
Student Progress Table Script
USE [GroupProject_CET4429]
GO
/****** Object: Table [dbo].[StudentProgress] Script Date: 04/21/2008 02:38:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[StudentProgress](
[StudentProgressID] [int] IDENTITY(1,1) NOT NULL,
[StudentID] [int] NOT NULL,
[ParentID] [int] NOT NULL,
[NumberOfQuizzesTaken] [int] NOT NULL,
[NumberofQuizzesPassed] [int] NULL,
CONSTRAINT [PK_StudentProgress] PRIMARY KEY CLUSTERED
(
[StudentProgressID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[StudentProgress] WITH CHECK ADD CONSTRAINT [FK_StudentProgress_Parent] FOREIGN KEY([ParentID])
REFERENCES [dbo].[Parent] ([ParentID])
GO
ALTER TABLE [dbo].[StudentProgress] CHECK CONSTRAINT [FK_StudentProgress_Parent]
GO
ALTER TABLE [dbo].[StudentProgress] WITH CHECK ADD CONSTRAINT [FK_StudentProgress_Student] FOREIGN KEY([StudentID])
REFERENCES [dbo].[Student] ([StudentID])
GO
ALTER TABLE [dbo].[StudentProgress] CHECK CONSTRAINT [FK_StudentProgress_Student]
The Student Results Table Script
USE [GroupProject_CET4429]
GO
/****** Object: Table [dbo].[StudentResults] Script Date: 04/21/2008 02:38:56 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[StudentResults](
[StudentResultsID] [int] IDENTITY(1,1) NOT NULL,
[StudentID] [int] NOT NULL,
[StudentQuizID] [int] NOT NULL,
[QuizResultsID] [int] NULL,
[QuizScore] [int] NULL,
[ResultsDateTime] [datetime] NULL,
CONSTRAINT [PK_StudentResults] PRIMARY KEY CLUSTERED
(
[StudentResultsID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[StudentResults] WITH CHECK ADD CONSTRAINT [FK_StudentResults_QuizWords] FOREIGN KEY([StudentQuizID])
REFERENCES [dbo].[QuizWords] ([StudentQuizID])
GO
ALTER TABLE [dbo].[StudentResults] CHECK CONSTRAINT [FK_StudentResults_QuizWords]
GO
ALTER TABLE [dbo].[StudentResults] WITH CHECK ADD CONSTRAINT [FK_StudentResults_Results] FOREIGN KEY([QuizResultsID])
REFERENCES [dbo].[Results] ([QuizResultsID])
GO
ALTER TABLE [dbo].[StudentResults] CHECK CONSTRAINT [FK_StudentResults_Results]
GO
ALTER TABLE [dbo].[StudentResults] WITH CHECK ADD CONSTRAINT [FK_StudentResults_Student] FOREIGN KEY([StudentID])
REFERENCES [dbo].[Student] ([StudentID])
GO
ALTER TABLE [dbo].[StudentResults] CHECK CONSTRAINT [FK_StudentResults_Student]
The Teacher Table Script
USE [GroupProject_CET4429]
GO
/****** Object: Table [dbo].[Teacher] Script Date: 04/21/2008 02:39:03 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Teacher](
[TeacherID] [int] IDENTITY(1,1) NOT NULL,
[TeacherSchoolID] [int] NOT NULL,
[TeacherSurName] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[TeacherGivenName] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
CONSTRAINT [PK_Teacher] PRIMARY KEY CLUSTERED
(
[TeacherID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
CONSTRAINT [TeacherConstraint] UNIQUE NONCLUSTERED
(
[TeacherSchoolID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
The Word Table Script
USE [GroupProject_CET4429]
GO
/****** Object: Table [dbo].[Word] Script Date: 04/21/2008 02:39:10 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Word](
[WordID] [int] IDENTITY(1,1) NOT NULL,
[WordNameText] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[WordDefinitionText] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[SoundLocationText] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
CONSTRAINT [PK_Word] PRIMARY KEY CLUSTERED
(
[WordID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
CONSTRAINT [WordConstraint] UNIQUE NONCLUSTERED
(
[WordNameText] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
Parent View
Written by – Ryan Pendry
Purpose - This View allows for Parents to view their child’s (Student’s) progress by displaying columns from the StudentProgress table.
USE [GroupProject_CET4429]
GO
/****** Object: View [dbo].[ParentView] Script Date: 04/21/2008 01:03:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[ParentView]
AS
SELECT dbo.Student.StudentID, dbo.Student.StudentSurName, dbo.Student.StudentGivenName, dbo.StudentProgress.NumberOfQuizzesTaken,
dbo.StudentProgress.NumberofQuizzesPassed
FROM dbo.StudentProgress
INNER JOIN
dbo.Student ON dbo.StudentProgress.StudentID = dbo.Student.StudentID

Student View
Written by – Ryan Pendry
Purpose - This View allows for Students to view their results of a quiz attempt.
USE [GroupProject_CET4429]
GO
/****** Object: View [dbo].[StudentView] Script Date: 04/21/2008 01:10:58 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[StudentView]
AS
SELECT dbo.Student.StudentID, dbo.Student.StudentSurName, dbo.Student.StudentGivenName, dbo.Results.QuizResultsID, dbo.Results.QuizResponse1,dbo.Results.Question1Spelling, dbo.Results.QuizResponse2,dbo.Results.Question2Spelling, dbo.Results.QuizResponse3,dbo.Results.Question3Spelling, dbo.Results.QuizResponse4,dbo.Results.Question4Spelling, dbo.Results.QuizResponse5,dbo.Results.Question5Spelling, dbo.Results.QuizResponse6,dbo.Results.Question6Spelling, dbo.Results.QuizResponse7,dbo.Results.Question7Spelling, dbo.Results.QuizResponse8,dbo.Results.Question8Spelling, dbo.Results.QuizResponse9,dbo.Results.Question9Spelling, dbo.Results.QuizResponse10, dbo.Results.Question10Spelling
FROM dbo.Results INNER JOIN
dbo.Student ON dbo.Results.StudentID = dbo.Student.StudentID
Teacher View
Written by – Ryan Pendry
Purpose - This View allows for Teachers to view the results of a Student’s quiz attempt.
USE [GroupProject_CET4429]
GO
/****** Object: View [dbo].[StudentView] Script Date: 04/21/2008 01:05:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[TeacherView]
AS
SELECT dbo.Student.StudentID, dbo.Student.StudentSurName,
dbo.Student.StudentGivenName, dbo.Results.QuizResultsID,
dbo.Results.QuizResponse1, dbo.Results.Question1Spelling,
dbo.Results.QuizResponse2, dbo.Results.Question2Spelling,
dbo.Results.QuizResponse3, dbo.Results.Question3Spelling,
dbo.Results.QuizResponse4, dbo.Results.Question4Spelling,
dbo.Results.QuizResponse5, dbo.Results.Question5Spelling,
dbo.Results.QuizResponse6, dbo.Results.Question6Spelling,
dbo.Results.QuizResponse7, dbo.Results.Question7Spelling,
dbo.Results.QuizResponse8, dbo.Results.Question8Spelling,
dbo.Results.QuizResponse9, dbo.Results.Question9Spelling,
dbo.Results.QuizResponse10, dbo.Results.Question10Spelling
FROM dbo.Results INNER JOIN
dbo.Student ON dbo.Results.StudentID = dbo.Student.StudentID
AddNewStudent Stored Procedure
Written by - Tyrell Baker / Gleb Teper
Purpose - This Stored Procedure adds each new Students’ Name, Birthdate, School and ClassID’s as well as their Parents. If a teacher wishes to enter a class of students or enter a student into a certain class, the teacher will use a ClassID such as ClassID 1, and that attribute will be added to the Student
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER PROCEDURE [dbo].[AddNewStudent]
@StudentSurName varchar(50),
@StudentGivenName varchar(50),
@StudentBirthDate varchar(50),
@ParentSurName varchar(50),
@ParentGivenName varchar(50),
@ClassID INT, @StudentSchoolID INT
AS
DECLARE @ID1 AS INT
BEGIN
INSERT INTO Student
(StudentSurName, StudentGivenName, StudentBirthDate, ClassID, StudentSchoolID)
VALUES
(@StudentSurName, @StudentGivenName, @StudentBirthDate, @ClassID, @StudentSchoolID)
SET @ID1 = @@IDENTITY
-------------------------------------------------------------
INSERT INTO Parent
(StudentID, ParentSurName, ParentGivenName)
VALUES
(@ID1, @ParentSurName, @ParentGivenName)
END
AddNewTeacher Stored Procedure
Written by - Tyrell Baker
Purpose - This Stored Procedure adds the Teacher’s First, Last Name and School ID into the database.
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER PROCEDURE [dbo].[AddNewTeacher]
@TeacherSurName varchar(50),
@TeacherGivenName varchar(50),
@TeacherSchoolID int
AS
BEGIN
INSERT INTO Teacher
(TeacherSurName, TeacherGivenName, TeacherSchoolID)
VALUES
(@TeacherSurName, @TeacherGivenName, @TeacherSchoolID)
--------------------------------------------------------------
END
AddNewWord Stored Procedure
Written by - Tyrell Baker
Purpose - This Stored Procedure adds each a new Word by inserting the WordNameText, WordDefinitionText, and SoundLocationText values.
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER PROCEDURE [dbo].[AddNewStudent]
@StudentSurName varchar(50),
@StudentGivenName varchar(50),
@StudentBirthDate varchar(50),
@ParentSurName varchar(50),
@ParentGivenName varchar(50),
@ClassID INT, @StudentSchoolID INT
AS
DECLARE @ID1 AS INT
BEGIN
INSERT INTO Student
(StudentSurName, StudentGivenName, StudentBirthDate, ClassID, StudentSchoolID)
VALUES
(@StudentSurName, @StudentGivenName, @StudentBirthDate, @ClassID, @StudentSchoolID)
SET @ID1 = @@IDENTITY
-------------------------------------------------------------
INSERT INTO Parent
(StudentID, ParentSurName, ParentGivenName)
VALUES
(@ID1, @ParentSurName, @ParentGivenName)
END
AssignQuiz Stored Procedure
Written by – Gleb Teper / Group
Purpose - This Stored Procedure assigns a QuizID to a Student. Upon running the stored procedure, a StudentResultsID is generated in the StudentResults table after which StudentID and StudentQuizID are added to the StudentResults Table. Upon completion of the Quiz and Teacher grading, the remaining fields in the StudentResults table are updated by the QuizGrade Stored Procedure.
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER PROCEDURE [dbo].[AssignQuiz] (
@StudentID int,
@StudentQuizID int
)
AS
DECLARE @StudentQuizID1 INT
BEGIN TRANSACTION
SELECT @StudentQuizID1 = StudentQuizID FROM QuizWords
WHERE StudentQuizID = @StudentQuizID
If @studentQuizID = @StudentQuizID1
BEGIN
INSERT INTO StudentResults
(StudentID, StudentQuizID, ResultsDateTime)
VALUES
(@StudentID, @StudentQuizID, getdate())
COMMIT
END
CreateQuiz Stored Procedure
Written by - Group
Purpose - This Stored Procedure Adds the words chosen by the Teacher into the Quiz for a Student. The words are selected from drop down lists. The drop down lists contain every word in the Words table.
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER PROCEDURE [dbo].[CreateQuiz]
@Word1 varchar(50),
@Word2 varchar (50),
@Word3 varchar (50),
@Word4 varchar (50),
@Word5 varchar (50),
@Word6 varchar (50),
@Word7 varchar (50),
@Word8 varchar (50),
@Word9 varchar (50),
@Word10 varchar (50)
AS
DECLARE @ID1 AS INT
BEGIN
INSERT INTO QuizWords
(StudentQuizID, quizWord1, quizWord2, quizWord3, quizWord4, quizWord5, quizWord6, quizWord7, quizWord8, quizWord9, quizWord10)
VALUES
(@ID1, @Word1, @Word2, @Word3, @Word4, @Word5, @Word6, @Word7, @Word8, @Word9, @Word10)
SET @ID1 = @@IDENTITY
end
ParentNames Stored Procedure
Written by - Ryan Pendry
Purpose - This Stored Procedure allows for Parent names to be properly formatted in a dropdown list.
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER PROCEDURE [dbo].[ParentNames]
AS
BEGIN
SELECT dbo.Parent.ParentGivenName + ' ' + dbo.Parent.ParentSurName as 'ParentName', dbo.Parent.ParentID as 'ParentID'
FROM Parent
END
ParentViewProgress Stored Procedure
Written by – Ryan Pendry, Olga Abouazza
Purpose - This Stored Procedure allows for variables to pass to the Parent view through the use of the stored procedure.
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER Procedure [dbo].[ParentViewProgress]
@StudentID int,
@ParentID int
AS
BEGIN
SELECT dbo.Student.StudentID,
dbo.Student.StudentSurName,
dbo.Student.StudentGivenName,
dbo.StudentProgress.NumberOfQuizzesTaken,
dbo.StudentProgress.NumberofQuizzesPassed
FROM dbo.StudentProgress
INNER JOIN
dbo.Student ON dbo.StudentProgress.StudentID = dbo.Student.StudentID INNER JOIN dbo.Parent ON dbo.StudentProgress.ParentID = dbo.Parent.ParentID
WHERE
dbo.StudentProgress.StudentID = @StudentID and dbo.Parent.ParentID = @ParentID
END
PassedQuiz Stored Procedure
Written by - Group
Purpose - This Stored Procedure counts the number of quizzes taken by the students by StudentID and adds 1 attempt for each quiz taken. It also adds in the Number of Quizzes Passed if the score is greater than 70.
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER PROCEDURE [dbo].[PassedQuiz]
AS
BEGIN
INSERT INTO StudentProgress
(NumberofQuizzesTaken)
VALUES
(1)
SELECT NumberofQuizzesPassed =
CASE
WHEN QuizScore >= 70 THEN '1'
WHEN QuizScore <= 70 THEN '0'
END
FROM StudentProgress
END
QuizAttempts Stored Procedure
Written by - Group
Purpose - This Stored Procedure captures the words that were typed by the student and placed into the QuizResponse# fields. It also imports the actual correct spelling into the Question#Spelling fields.
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER PROCEDURE [dbo].[QuizAttempts]
@QuizWord1 varchar(50), @QuizResponse1 varchar(50),
@QuizWord2 varchar(50), @QuizResponse2 varchar(50),
@QuizWord3 varchar(50), @QuizResponse3 varchar(50),
@QuizWord4 varchar(50), @QuizResponse4 varchar(50),
@QuizWord5 varchar(50), @QuizResponse5 varchar(50),
@QuizWord6 varchar(50), @QuizResponse6 varchar(50),
@QuizWord7 varchar(50), @QuizResponse7 varchar(50),
@QuizWord8 varchar(50), @QuizResponse8 varchar(50),
@QuizWord9 varchar(50), @QuizResponse9 varchar(50),
@QuizWord10 varchar(50), @QuizResponse10 varchar(50)
AS
BEGIN
INSERT INTO Results
(QuizResponse1, QuizResponse2, QuizResponse3, QuizResponse4, QuizResponse5, QuizResponse6, QuizResponse7, QuizResponse8, QuizResponse9, QuizResponse10,
Question1Spelling, Question2Spelling, Question3Spelling, Question4Spelling, Question5Spelling, Question6Spelling, Question7Spelling, Question8Spelling, Question9Spelling, Question10Spelling)
VALUES
(@QuizResponse1, @QuizResponse2, @QuizResponse3, @QuizResponse4, @QuizResponse5, @QuizResponse6, @QuizResponse7, @QuizResponse8, @QuizResponse9, @QuizResponse10,
@QuizWord1, @QuizWord2, @QuizWord3, @QuizWord4, @QuizWord5, @QuizWord6, @QuizWord7, @QuizWord8, @QuizWord9, @QuizWord10)
END
QuizGrade Stored Procedure
Written by - Tyrell Baker
Purpose - This Stored Procedure takes the grade entered for the quiz by the Teacher and places into the StudentResults table as the students grade for the attempt. The date that the results were entered is also placed into the ResultsDateTime column.
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER PROCEDURE [dbo].[QuizGrade]
@Grade int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
UPDATE StudentResults.QuizScore
SET StudentResults.QuizScore = @Grade
END
StudentNames Stored Procedure
Written by - Ryan Pendry
Purpose - This Stored Procedure allows for Student names to be properly formatted in a dropdown list.
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER PROCEDURE [dbo].[StudentNames]
AS
BEGIN
SELECT dbo.Student.StudentGivenName + ' ' + dbo.Student.StudentSurName as 'StudentName', dbo.Student.StudentID as 'StudentID'
FROM Student
END
StudentQuizResultsView Stored Procedure
Written by – Ryan Pendry, Olga Abouazza
Purpose - This Stored Procedure allows for variables to pass to the Student view through the use of the stored procedure.
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER Procedure [dbo].[StudentQuizResultsView]
@StudentID int,
@StudentQuizID int
AS
BEGIN
SELECT dbo.Student.StudentID, dbo.Student.StudentSurName, dbo.Student.StudentGivenName, dbo.Results.QuizResultsID,
dbo.Results.QuizResponse1, dbo.Results.Question1Spelling, dbo.Results.QuizResponse2, dbo.Results.Question2Spelling,
dbo.Results.QuizResponse3, dbo.Results.Question3Spelling, dbo.Results.QuizResponse4, dbo.Results.Question4Spelling,
dbo.Results.QuizResponse5, dbo.Results.Question5Spelling, dbo.Results.QuizResponse6, dbo.Results.Question6Spelling,
dbo.Results.QuizResponse7, dbo.Results.Question7Spelling, dbo.Results.QuizResponse8, dbo.Results.Question8Spelling,
dbo.Results.QuizResponse9, dbo.Results.Question9Spelling, dbo.Results.QuizResponse10
FROM dbo.Results INNER JOIN
dbo.Student ON dbo.Results.StudentID = dbo.Student.StudentID
WHERE
dbo.Results.StudentID = @StudentID and dbo.Results.StudentQuizID = @StudentQuizID
END
TeacherNames Stored Procedure
Written by - Ryan Pendry
Purpose - This Stored Procedure allows for Teacher names to be properly formatted in a dropdown list.
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER PROCEDURE [dbo].[TeacherNames]
AS
BEGIN
SELECT dbo.Teacher.TeacherGivenName + ' ' + dbo.Teacher.TeacherSurName as 'TeacherName', dbo.Teacher.TeacherID as 'TeacherID'
FROM Teacher
END
TeacherQuizResultsView Stored Procedure
Written by – Ryan Pendry, Olga Abouazza
Purpose - This Stored Procedure allows for variables to pass to the Teacher view through the use of the stored procedure.
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER Procedure [dbo].[TeacherQuizResultsView]
@StudentID int,
@TeacherID int
AS
BEGIN
SELECT dbo.Student.StudentID, dbo.Student.StudentSurName, dbo.Student.StudentGivenName, dbo.Results.QuizResultsID,
dbo.Results.QuizResponse1, dbo.Results.Question1Spelling, dbo.Results.QuizResponse2, dbo.Results.Question2Spelling,
dbo.Results.QuizResponse3, dbo.Results.Question3Spelling, dbo.Results.QuizResponse4, dbo.Results.Question4Spelling,
dbo.Results.QuizResponse5, dbo.Results.Question5Spelling, dbo.Results.QuizResponse6, dbo.Results.Question6Spelling,
dbo.Results.QuizResponse7, dbo.Results.Question7Spelling, dbo.Results.QuizResponse8, dbo.Results.Question8Spelling,
dbo.Results.QuizResponse9, dbo.Results.Question9Spelling, dbo.Results.QuizResponse10
FROM dbo.Results
INNER JOIN
dbo.Student ON dbo.Results.StudentID = dbo.Student.StudentID
INNER JOIN
dbo.Teacher ON dbo.results.TeacherID = dbo.teacher.TeacherID
WHERE
dbo.Results.StudentID = @StudentID and dbo.Results.TeacherID = @TeacherID
END
Documentation of code plan
How Would This Work?
If we build an interface in Visual Studio, we would have a Master page, with three Menus
- Teacher Menu
- Student Menu
- Parent Menu
Each user will have to enter a password to insure privacy. The Teacher will have SchoolTeacherID as a login, and a password will be setup. The Student will have SchoolStudentID as a login, and password will be setup. The Parent will use the SchoolStudentID as a login and a password will be set up.
If the teacher menu is clicked, the teacher can choose to do these tasks in a new page:
- Create Sound File
- Create Spelling List
- Assign Quizzes
- Can Create a list of students
- Can see the results of student attempts at a quiz
1) Can create a sound file for any spelling word and save this sound file
3 input text boxes for WordNameText, WordDefinitionText, SoundLocationText
submit button to send to database
The teacher will record the word, save it in a folder, the URL will be saved in Word Table using SoundLocationText field. The Stored procedure AddNewWord will run when the submit button is clicked, with WordNameText Field including a Unique Constraint. The Unique constraint will ensure that no word is repeated.
2) Can create spelling lists from sound files (of words)
Using the stored Procedure CreateQuiz, the teacher can create quizzes
input: 10 drop down lists with all of the words
2 text boxes for TeacherID, QuizDurationTime
submit button to send to database
3) Can assign spelling lists and quizzes to students in a class
Using the stored procedure AssignQuiz, the teacher will be able to assign a quiz to a student.
input: drop down list to select quiz, drop down list to select student
submit button to send to database
4) Can create a list of student users as a class
Using the stored procedure AddNewStudent, The teacher can create a list of students as a class, to ensure that no student is entered twice; the StudentSchoolID is a unique constraint. At the same the parents information will be added.
input: 5 text boxes for StudentSurName, StudentGivenName, StudentBirthDate, ClassID, StudentSchoolID
2 text boxes for ParentSurName, ParentGivenName
submit button to send to database
5) Can see the results of student attempts at a quiz
Using the stored Procedure QuizAttempts, the teacher will be able to view the quiz attempt and compare between, the correct answer and the entered answer.
If the Student Menu is chosen, then student can choose to:
gridview shows the correct answers and entered answers
input: 1 text box for Grade
submit button to send to database
After quizzes are added using the AssignQuiz Procedure, the student will be able to click on the quizzes that have been assigned to the same StudentID, and attempt the quiz.
Using the StudentQuizResultView stored Procedure; the student will be able to view the previous attempts.
The student can view his/her progress using the ParentViewProgress stored Procedure
input: 2 text boxes for StudentID and StudentQuizID
submit button to send to database
If the Parent Menu is chosen, then the parent can choose to:
The Parent has the option to
- View the results of Student Progress
input: 2 input boxes for StudentID and ParentID
submit button to send to database
The Parents are assigned to the students when the teacher adds a new student. Once the parent is in the system, they are able to view the progress using ParentViewProgress stored procedure. The parent will be able to view the NumberOfQuizzesTaken, the NumberOfQuizzesPassed. The parent can only view their children’s progress report.
(Roles and access levels to tables, views, stored procedures. List all roles and user types.)
1) Administrator
- The administrator has full administrative access to the entire database including all tables, view and stored procedures.
- Since the database will be deployed in SQL server that runs on Windows, then the SQL server Authentication along with windows authentication, can be used to secure that database.
- A login name and password will be needed to make any changes, or updates to the database.
2) Teacher(s)
- Can create a sound file for any spelling word and save this sound file.
- Can create spelling lists from sound files (of words).
- Can assign spelling lists and quizzes to students in a class.
- Can create a list of student users as a class.
- Can see the results of student attempts at a quiz.
- The Teacher will be assigned a login and a password by the administrator.
- The privileges will be set where the teacher can modify any of the above tasks.
- The Teacher login will be the TeacherSchoolID.
3) Student(s)
- Can see and attempt spelling quizzes.
- Can see results of all past quiz attempts.
- The Student will be assigned so that he/she can take a quiz.
- The login will be the StudentSchoolID.
- The student will only be able to take the quizzes that have been assigned by the teacher.
- Also, the student will only be able to views his/her progress report.
4) Parent(s)
- Can view results of student progress for a student or students to which they are assigned.
- The Parent can only views the progress report using StudentSchoolID as login.
- The parent can’t assign test.
How will appropriate access be ensured?
USING ADO.NET, we can create logins and passwords, and within the C# or VB, code the conditions for how does what
Windows authentication
Windows authentication will be used to assure the login/password combinations needed for the Teachers and Students to log into the system.
This integrated security feature makes it easier to restrict access on the system by allowing the Teachers Read/Write type access to the system, as well as Read/Write access for the Students and Read access for the Parents. Also, we can restrict which areas they have Read/Write access to by how the files of the system are saved and accessed.
The Primary Keys of all the tables in the database are indexed and referenced at different times to keep concurrency throughout the stored procedures that are running against it. We decided that due to the actual number of users and the nature of our program that it is not necessary to implement Indexing. We do not anticipate the number of students, teachers, or parents to reach an amount that would benefit from indexing. In addition, While we do anticipate a lot of words, the words will be updated on a very frequent basis which would make indexing impractical.
2) How will you monitor performance?
The Activity Monitor gives a snapshot of the current database activity on the server.
We can monitor who is logged in, what processes are running and how much system resources are being used.
Also, we can set the Database Mail function to monitor and notify us when the database reaches a certain file size and/or when someone tries to access the system without the right login credentials too many times.


3) Who will be responsible for maintaining?
Maintenance should be handled by a skilled Database Administrator to oversee the size of the database and if the backup and maintenance logs are showing any errors.
Additionally, the DBA can prepare a disaster recovery plan so the data is not lost.
4) What access will Maintenance have?
A Database Maintenance Plan can be setup in SQL Management Studio to remove the excess space from the database, monitor the transactions on the database, reorganize/rebuild the indexes, and backup the database on a regular schedule. Database Admin will have access to the Database itself through a Database Management system such as SQL Management Studio. This can all be handled with the Maintenance Plan Wizard.




Teacher Table in SQL Server

Student Table In SQL Server

QuizWords Table In SQL Server

Stored Procedures in Object Explorer
Comments (0)
You don't have permission to comment on this page.