Assignment 1 DUE TONIGHT

Size: px
Start display at page:

Download "Assignment 1 DUE TONIGHT"

Transcription

1 Instructor: Craig Duckett Assignment 1 DUE TONIGHT Lecture 05: Tuesday, April 10 th, 2018 Transactions, Acid Test, DML, DDL 1

2 Assignment 1 is due TONIGHT LECTURE 5, Tuesday, April 10 th in StudentTracker by MIDNIGHT MID-TERM EXAM is LECTURE 10, Tuesday, May 1 st, 2018 Assignment 2 is due LECTURE 12, Tuesday, May 10 th, 2018 in StudentTracker by MIDNIGHT 2

3 3 x 150 Points (450 points Total) Assignment 1 (Stage 1): DUE TONIGHT Tuesday, April 10 th Assignment 2 (Stage 2): DUE LECTURE 12 Tuesday, May 8 th Assignment 3 (Stage 3): DUE LECTURE 20 Tuesday, June 56 th Database Presentation: DUE LECTURE 20 Tuesday, June 5 th 3

4 Tuesday (LECTURE 5) Database Design for Mere Mortals: Chapter 4 Thursday (LECTURE 6) The Language of SQL: Chapter 5: Sorting Data Chapter 6: Column Based Logic 4

5 Transactions The Acid Test Data Manipulation Language (DML) Data Definition Language (DDL) Normalization Denormalization 5

6 Transactions and the ACID Test 6

7 Transactions and the ACID Test When we're entering or changing data in our databases, we'll often need to work with transactions. A transaction is an incredibly important thing in the world of databases. And to understand them, the best way is to think about what we think of as a transaction in the real world. If you talk about making a transaction, you often mean something commercial. You hand over $15 to a bookseller, the bookseller gives you the book. That's the transaction, and it's important that both of those things happen. If you hand over the money, you expect to get the book. If they hand you the book, they expect to get the money. Either both of these things happen, or neither of them do. Now in a computing system, a classic example of transactions is a banking system. Imagine that you log on to your bank's website, and you want to transfer $2,000 from one of your account to another.

8 Transactions and the ACID Test Now, that's going to require two updates to this data, one to subtract $2,000 from the savings account, and the other to add $2,000 to the checking account. Now if the first part of this happens successfully, subtracting $2,000 and then we try and add $2,000, but there's a problem with the second part, perhaps it's locked for editing. Well, we will need to reverse the first part of this transaction.

9 Transactions and the ACID Test We never want to be in a situation where $2,000 has been debited from the first account, but it didn't get added to the second. So, a transaction is how you define a combined unit of work, either both of these things happen or neither of them do, and the first change will be reversed instantly by the database if any part of the transaction fails.

10 Transactions and the ACID Test Now, there's a common acronym that you'll come across when working with transactions in a database, ACID. A transaction must be Atomic, Consistent, Isolated, and Durable. Being Atomic, and this is the Greek word atom meaning an indivisible unit, it refers to the core idea that this transaction must completely happen or not at all. So, whether there are two steps in the transaction or 20 steps, they're all contained within the transaction. They either all complete successfully, or they all return to the original state. There is no such thing as a transaction that halfway occurs.

11 Transactions and the ACID Test Now whether the reason for the transaction failing is that the database had a power failure or ran out of space to hold a new data, or there was an application error, it doesn't matter. Atomic is the all or nothing rule. Now Consistency means that any transaction must take the database from one valid state to another valid state based on the rules of the database. So, even if a transaction is successfully atomic, it still cannot result in a situation that violates any of the integrity rules defined in a database. Isolation refers to the data and the transaction being essentially locked for that moment in which the transaction is occurring. So, while we're trying to change a balance on one of our account records, another part of the system must not be allowed to access that data until the first transaction has finished. And durability refers to the transaction being considered robust. If it happens and the database says this transaction has happened successfully, then the transaction is guaranteed. Say if you go to a travel website, purchase a flight on an aircraft, and you're guaranteed seat to A, then you should be able to regard that transaction as being durable. Even if half a second later, the database suffers a power failure and shuts down, when it reboots, that transaction will have survived that failure and they are not going to sell that seat to someone else simply because there was a glitch in the system half a second after you made your purchase. Now, the great thing about working with most Database Management Systems is these capabilities are built into the system. You don't have to worry about how to program these. You just need to know when to tell the database, this is a transaction; these three things, these four things, these 10 things must be done together. That's what we'll see how to do a little later on.

12 Data Manipulation Language (DML) 12

13 Data Manipulation Language (DML) A data manipulation language (DML) is a family of computer languages including commands permitting users to manipulate data in a database. This manipulation involves inserting data into database tables, retrieving existing data, deleting data from existing tables and modifying existing data. DML resembles simple English language and enhances efficient user interaction with the system. So far, we've been focused on using the SELECT statement to read information out of a database, but that begs the question, how did the data get in there in the first place? We have several different keywords in SQL for inserting, updating, and deleting information. Now, this goes back to the idea that any computer system, not just databases that deals with storing data needs to provide four fundamental functions, the ability to Create, Read, Update, and Delete often using the acronym CRUD.

14 Data Manipulation Language (DML) Data manipulation languages have their functional capability organized by the initial word in a statement, which is almost always a verb. In the case of SQL, these verbs are: SELECT... FROM... WHERE... INSERT INTO... VALUES... UPDATE... SET... WHERE... DELETE FROM... WHERE... Well, if you want to work with CRUD in SQL, we don't use these exact words here. There are a couple of them that are different. We know already that when we want to read information out of the database, we use the SQL keyword SELECT, and if we want to create, we're going to use the SQL keyword INSERT. Now update and delete there's no conflict there. They are just UPDATE and DELETE in SQL.

15 Data Manipulation Language (DML) So, let's take a look at the ones we haven't covered yet. I'm going to talk about inserting first. So, the assumption is we're inserting a new row of data into a particular table and the general format is INSERT INTO, then your table name, then a list of columns and then the VALUES that you want to insert into those columns.

16 Data Manipulation Language (DML) So, if we're going to insert into this simple imaginary Employee table, I'll use the name of the table, and then inside parenthesis, the name of the columns that I'm going to provide values for.

17 Data Manipulation Language (DML) So, if we're going to insert into this simple imaginary Employee table, I'll use the name of the table, and then inside parenthesis, the name of the columns that I'm going to provide values for. Now, you specifically name columns because you don't always provide data for every single column in a new row. Some of these columns might be null. Some columns might provide their own default values and quite often you might have some columns that are automatically generating primary keys, and you certainly don't want to try and insert your own values in those situations. So, you name the columns you're going to provide values for.

18 Data Manipulation Language (DML) And then after the keyword values, you provide those values. If there are strings they need to be in single quotes, if they are numeric key, you don't need the quotes. The columns, and you values must match in number, in order, and type. You can't say you're going to provide five columns and then only provide values for four. And also the data types must match. If the column is defined as a number, you can try and insert a string into that column.

19 Data Manipulation Language (DML) If I go ahead and execute this, what it's going to do is create a new row in that table. Now, I'm making the assumption here that the way the database has been defined, Employee ID will be an automatically-generating primary key. So, we didn't need to provide a value there. Hire Date? We probably could have provided one, but I'm imagining that it was set up to do a default value of the today's date for this row to be created. And let's imagine that was allowable to have null values there. So, if we didn't provide one, it's just null.

20 Data Manipulation Language (DML) If I go ahead and execute this, what it's going to do is create a new row in that table. Now, I'm making the assumption here that the way the database has been defined, Employee ID will be an automatically-generating primary key. So, we didn't need to provide a value there. Hire Date? We probably could have provided one, but I'm imagining that it was set up to do a default value of the today's date for this row to be created. And let's imagine that was allowable to have null values there. So, if we didn't provide one, it's just null. We don't have to rank manual insert statements for every new row in our database. It's much more likely that this process will be done programmatically. The people will be using a more pleasant user interface to enter data, an application, or web-based portal that used PHP or ASP pages, but this is the kind of insert statement that's going on behind the scenes. EXAMPLE:

21 Data Manipulation Language (DML) We know we can read information out of the database, but what if we want to change something? It's quite often that that we'll change information in the database once it has been created, and we use the update statement for that. The format here is UPDATE, table name. You're going to use the keyword SET, and you're going to change a particular column. So, what column and what value do you want it to be and then almost always you'll be using a WHERE clause. This is exactly the same as doing where in the select statement that allows you to limit the amount of rows that this update will apply to.

22 Data Manipulation Language (DML) So, an example would be, if we have that row that we just inserted, and I wanted to update it to change the column, I'd say UPDATE the Employee table. I'm going to set the column code equal to, provide the string value, and then the WHERE condition.

23 Data Manipulation Language (DML) In this case, the easiest way would be EmployeeID equals 734, and if we run that it will reach directly into that row, and change that one value. Now technically, you don't have to have a WHERE clause, but just as leaving off a WHERE clause in the Select statement would return all the rows in that table leaving off a WHERE clause in an update statement would mean that you would set this column value for every single row in that table. Now, occasionally, that is what you want in an update, but more often you will restrict your updates to one row or a handful of rows. So, we use WHERE clauses for that and using where in an update, it's exactly the same as using it in a select

24 Data Manipulation Language (DML) Finally, DELETE. DELETE is actually the simplest because it's all the about the where. The format is DELETE FROM, particular table name, WHERE condition. We don't have to name any columns in this query because delete just works on rows. If you delete a row, you delete an entire row. You can't delete part of a row. So, there's no point in naming any of the columns here.

25 Data Manipulation Language (DML) If you just want to blank out some information in an existing row, well, that's an update. So, that WHERE clause and the DELETE just defines which rows and which table you're going to delete. So, we'd say to DELETE FROM Employee, WHERE. In this case EmployeeID equals 734. This is about as specific as we could possibly get.

26 Data Manipulation Language (DML) Now, you can delete multiple rows at a time the same way that you could use a where clause to select the multiple rows at the time, but for heaven sake take care with your delete statements, almost everyone who has worked with the databases for a while has a horror story about the DELETE statement that was written a little to casually. Because if you write something as simple as this and execute it, the database management system is just going to say, "Well, you're the boss and go ahead and delete every single row in this employee table." It won't ask, are you sure? It won't ask you to confirm anything. It will just do it. DELETE is a very powerful keyword.

27 Data Manipulation Language (DML) So in this case, I'll do a select staff, an employee where employee ID equals 734 and just confirm that the result I would expect back, in this case one row, well, that's what would also affect if I was doing an update, and that's what I'd affect if I was doing a delete. So, I'll create it as a select first and then change the select box to delete. Execute that, and we go to bit better faith that what we're actually affecting is just one row. So, to good practice to make sure the where clause is only selecting the rows you expect before you turn it into a delete or an update statement.

28 Data Definition Language (DDL) 28

29 Data Definition Language (DDL) Now the majority of SQL that you'll write will be things like SELECT statements, INSERT, UPDATE, and DELETE but that's not the whole picture. These keywords are lumped together as the DML part of SQL. Data Manipulation Language is that part of the sequel language that deals with working with and manipulating data in your table. So, selecting it, inserting it, updating it, deleting it, but none of these words actually allow us to alter the structure of the database itself.

30 Data Definition Language (DDL) So, how do we create a new table? How would we say what columns exist? How would we define primary keys? We can't use any of these words for that. But that can be done in SQL using a part of the language that is lumped together under the phrase DDL or Data Definition Language. The three key words there are Create, Alter, and Drop. These words let us change the structure of the database itself. Let's take a look at a couple of them.

31 Data Definition Language (DDL) If I want to write SQL to create a new table, this is the format that I'll use. The word CREATE, and then the table name you just make it up, it's whatever you want to call it and then in parentheses, the definition of your columns. This is after all what a table is it's simply naming the columns and giving them data types in any rules they must comply to.

32 Data Definition Language (DDL) So, if I wanted to create a new employee table, I would say CREATE Employee and then inside parenthesis, here's how I would provide column definitions. We start off with EmployeeID as an INTEGER which is PRIMARY KEY. And these are key words we're using to tell SQL the importance of and the rules these columns must comply to. I'm not going to get into the specific of these for reasons I'll cover in just a moment, but the general format should be at least understandable about what this would do. It's going to create a new table with five columns, an integer, three VARCHAR, and that means the variable length character field. I can recognize even phrases like NOT NULL or NULL. So, it looks like we don't have to put anything in the department column and then we're finishing off with salary as an integer. Now, obviously in a production database, these can be far more complex than this but this is the basics of how it's done.

33 Data Definition Language (DDL) Now, if we move on a little bit and realize we need to change the definition of it, we can use the key word, ALTER. Now, typically would alter a table. If you give it the table name and then you give it a bit of information about what you're trying to change. In this case, I'm saying I'm adding a new column. That column is called . It's going to be a variable length character string of 100 characters.

34 Data Definition Language (DDL) If I have a problem with what I created earlier, I can use the last of the three keywords which is DROP. And we would simply say something like DROP TABLE Employee. We wouldn't need any WHERE clauses, any column definitions. We're simply saying destroy the entire table, again, something to be very, very careful about working with.

35 Data Definition Language (DDL) Now, I wanted to introduce these phrases, but I'm really not going to spend much more time on these words here for two reasons. First, many people who work on the actual design and structure of the database will use a visual application like PHPMyAdmin (or MySQL Workbench) or SQL Server Management Studio, rather than hand coding create an ALTER statements. It's true that if you're in a database administration role you all might then spend a lot of time with these kinds of data definition statements, CREATE, ALTER, and DROP, but regular day to day developers working in these databases typically don't. You shouldn't be spending most of your time changing the definition of the database. You should be spending most of your time manipulating the actual data in it. It's worth mentioning that there are a couple of other keywords in SQL that are typically lumped together under the idea of data control keywords. This is where you can either grant or revoke permissions for people in the database. This is not an area we're going to cover in this course because that really gets into the specifics of things like the operating system and the authentication schemes that you're using for your particular database. So, it's just not general content.

36 Normalization

37 Normalization Once we've started to plan out our tables, our columns, and relationships, we do something called Database Normalization. This is a process where you take your database design, and you apply a set of formal criteria of rules called Normal Forms. These were developed about 40 years ago mainly by Edgar Codd, the father of relational databases. And we step through them 1, 2, 3, first normal form, second normal form, and third normal form. There are others but these are the important ones.

38 Normalization Normalization should be carried out for every database you design. It's really not that hard, even though, yes, when you first start reading about database normalization, you'll run into phrases like: But you don't have to get into all this language unless you are mathematically inclined. The entire point of normalization is to make your database easier and more reliable to work with. You usually will end up creating a few new tables as part of the process. But the end result is your database will contain a minimum of duplicate or redundant data. It will contain data that's easy to get to, easier to edit, and maintain, and you can preform operations, even difficult ones on your database without creating garbage in it, without invalidating the state of it. If you're a working database administrator or database designer, you can do normalization in your sleep. It's a core competency of the job. It's important. And as you'll see, we've already been doing a little of it.

39 First Normal Form (1NF) Before we apply the first set of criteria, what's called first normal form, often shortened to 1NF, I'm taking as a given that we already have our columns and our primary keys specified. First normal form says that each of your columns and each of your tables should contain one value, just one value, and there should be no repeating groups. Okay, what does this actually mean?

40 First Normal Form (1NF) Well, let's say I begin developing a database for my company and one of my tables is an Employee table, very simple stuff, EmployeeID, LastName, FirstName, and so on. And we allocate every employee a computer. I want to keep track of that, so we'll add a ComputerSerial column to keep track of who has what. Now, this is actually okay right now. This technically is in first normal form. Here's the problem.

41 First Normal Form (1NF) Let's say I figured out that some of our employees need a Mac and a PC to do the testing. Others need a desktop and a laptop. So, several people have multiple computers, and I want to keep track of all of them. There is a couple of ways that I could deal with this. I could just start stuffing extra data into that one column. We could start putting commas or vertical bars or any other delimiter and put in multiple values in the one ComputerSerial column. This is just something you just don't do in Relational Database Design. We're violating first normal form. Understand the relational databases will happily deal with hundreds of tables. Each table could have hundreds of columns and millions of rows. But they do not want columns that have a variable amount of values. You would find it hard to search directly for a serial number. You'd find it hard to sort. You'd find it hard to maintain. So, it's not in first normal form if you do this because first normal form demands that every column, every field contains one and only one value.

42 First Normal Form (1NF) So, what we might do then is go back to the original way, and instead start adding new columns. So, ComputerSerial2, ComputerSerial3, this is what's called a repeating group, and there should be no repeating groups. The classic sign of a repeating group column is a column with the same name, and the number tacked onto the end of it just to make it unique, because usually this is a sign of an inflexible design. Sure, if we could guarantee that there would only ever be two or three, that's fine. But what happens when we want to add the tablet and the smart phone? What happens when one employee manages testing and needs to be associated with six computers? We don't want to require a change to the database schema just because we buy a new computer. So, what do we do here?

43 First Normal Form (1NF) Well, what we do is the same thing for a lot of these normalization steps. We'll take this data out of the Employee table, and put it in its own table.

44 First Normal Form (1NF) This then has relationships. We create a one-to-many relationship between employee, and this new computer, or it could be called an asset table or whatever else makes sense. And it has a foreign key back to the Employee table. I can take any EmployeeID like 551, follow it to the Computer table, and find his two computers or 553, find his three computers, there are no repeating values, no repeating groups in either table. And this will get us into first normal form.

45 First Normal Form (1NF) This then has relationships. We create a one-to-many relationship between employee, and this new computer, or it could be called an asset table or whatever else makes sense. And it has a foreign key back to the Employee table. I can take any EmployeeID like 551, follow it to the Computer table, and find his two computers or 553, find his three computers, there are no repeating values, no repeating groups in either table. And this will get us into first normal form. Now, it's very common that the solution to a normalization issue is to create a new table. Sometimes, it's a one-to-many relationship like this, other times it might even require a manyto-many with a linking table.

46 Second Normal Form (2NF) Before you attempt to go into second normal form or 2NF, well first, you have to be in first normal form. You don't pick and choose between them. You go through this one, two, three. Now whereas first normal form is about the idea of repeating values in a particular column, second normal form, and third normal form are all about the relationship between your columns that are your keys, and your other columns that aren't your keys. The second normal form has the rather puzzling official description that any non-key field should be dependent on the entire primary key. And that is about as simple as it can get phrased.

47 Second Normal Form (2NF) Now, when I say the word field, it usually refers to the idea that the actual value in a particular column position for a particular row. But what does this actually mean? Well, for most of what we've done in this course, this actually won't be an issue for us. Second normal form is only ever a problem when we're using a Composite Primary Key. That is a primary key made of two or more columns. So, let me show you a table that currently is in first normal form but not in second normal form. Going back to the idea of a database for a training center, I have an Events table here that has an ID of a Course, a Date, CourseTitle, Room, Capacity, AvailableSeats, and so on. Now, what's actually happening here is this table has been defined to use two columns as the primary key. It's a composite primary key.

48 Second Normal Form (2NF) Now, the issue with second normal form is that if you use a composite key, you need to look closely at the other columns in this table. So, going along to my non-key columns, I have CourseTitle, SQL Fundamentals, Room 4A, Capacity is 12, there are 4 seats available. A lot of this information would be unique to this one entry, this one course on this particular date. That's fine. But second normal form asks that all of my non-key columns, everything that isn't part of the key, so Course Title, Room, Capacity, Available, they all have to be dependent on the entire primary key. Now, that is the case for Room and Capacity and Available. These are unique values based on the fact that we're running this particular Date, this particular Course, and this particular room with a certain number of seats available. It will always be different. But CourseTitle, well, I could get that just from half of the key. I could get that just from the first part of the key. It has no connection to the Date whatsoever. SQL Fundamentals will always be based on SQL101.

49 Second Normal Form (2NF) It doesn't matter if it's being run in March or April or May. Now, this might sound a little bit ivory tower. But here would be the impact. What happens if somebody reached into this table, and they changed that Course ID, but they didn't change the title? Now, we've got a conflict. We might have the wrong title for the wrong piece of data. That's because my data now isn't in second normal form, and we're trying to fix that conflict from ever happening. So, how do we fixit?

50 Second Normal Form (2NF) Well, once again, we're going to rip out the CourseTitle. We're going to create a separate Courses table, where we want to again map the ID of the course into its own row. So, we'll always have one specific title for one specific ID. And then we create a one-to-many relationship between Events and Course. And removing that from the Event table means that everything in that table is now based on the entire key, particular course, at a particular date which may have a different room or different capacity, different number of available seats.

51 Third Normal Form (3NF) Now, let's take a look at the third normal form or 3NF. Well, as plainly as this can be described, it's that no non-key field, meaning, a column that is not part of the primary key is dependent on another non-key field. It is in a way similar to second normal form. Second normal form asks can I figure out any of the values in this row from just part of the composite key? While third normal form asks can I figure out any of the values in this row from any of the other values in this row? And I shouldn't be able to do that.

52 Third Normal Form (3NF) Let's take a look at an example. I've got this updated version of the Events and Courses table from the previous example. So, it's in both first normal form, it doesn't have any repeating values or repeating groups, and it's in second normal form. Meaning, there's no part of this that's dependent on just on a piece of the key. What I need to do for third normal form is look at my non-key fields, Room, Capacity, Availability. If I scan the entire row, let's take the first row, we've got SQL101 course occurring on the 1st of March. There is apparently 4 seats available. It's in Room 4A with a capacity of 12. Now, this is at a first look at it perfectly acceptable, because this course could be being scheduled in a different room every time with a different number of available seats as we start to sell different seats for a particular date. That's all okay.

53 Third Normal Form (3NF) Here's the problem. It's between Room and Capacity. These are both non-key fields. These columns aren't part of the primary key. But if I look down the column for Room, I see 4A has 12 seats capacity, 4A has 12 seats, 7B has 14 seats. So, if every time we're in Room 4A, we always have 12 seats or every time we're in 7B, we always have 14 seats. I don't need to repeat that information. I could figure out capacity from Room and Room alone. I have one non-key field that is based on another non-key field. So, we don't need these to be stored in the same table. What we need to do is, you guessed it, split some of this information out into its own table.

54 Third Normal Form (3NF) So, we need to pull out Capacity from the Event table, and just keep Room. And that's as long as Room will always tell us a fixed capacity, we'd create our own table for it, 4A always has 12, 7B always has 14, and so on. Now, we're in third normal form, no non-key field is dependent on another non-key field. Now, as you're seeing, it's all about the redundancy of the information. This is what we're trying to do with normalization.

55 Third Normal Form (3NF) Now, another example of third normal form would be something like this, which is very common. Let's say we've got an OrderItem table, which is calculating different parts of an invoice. So, it has a ProductID with a Quantity, a UnitPrice, and a Total.

56 Third Normal Form (3NF) Now, you don't have to worry about how this might relate to different tables. All I'm interested in looking at is this part. We've got Quantity for UnitPrice of $10, Total is $40. Here is the issue. We can see that Total is based purely as on Quantity times UnitPrice. Now, Quantity and UnitPrice are both non-key fields. So we're figuring out Total from these other two non-key fields. We don't need to do this. We don't need to store this in the database. We don't want to store information in your table that's easily ascertained by adding other non-key fields together, or in this case multiplying them. One of the main reasons for this is to prevent any conflicts. If in this example I have a row that says we have a Quantity of 4 and the UnitPrice of 10, but the Total says 50, well, where is the problem? There is a problem. How do we do it? How would we fix it?

57 Third Normal Form (3NF) Is the Total wrong or is the Quantity wrong? Your data doesn't make sense anymore. So, we would remove that Total column form this table. We can figure it out when we need to figure it out. Now, third normal form will help you figure out these potential problems. Now just a quick side bar, in cases like this where you might find a total useful in the table, many database systems offer you the option of defining a computed or calculated column. It's not actually stored in the database, it is a convenient read-only fiction. Its value is automatically calculated based on the other columns in the table, and you may find that useful from time to time.

58 Denormalization OPTIONAL SLIDES 58

59 Database Denormalization So, we should always take our database design through the first, second, and third normal forms. There are more criteria available. There are fourth, fifth, and sixth normal forms. There's something called Boyce-Codd normal form. But taking it to third normal form is the usual expectation in a business environment, and certainly all we need to cover in a course like this one. Now, you will actually find a lot of tables out there intentionally break normalization rules and some others seem like they do but they actually don't.

60 Denormalization Here's one example. Let's say we've got an Employee table, and I'm storing an and a Phone number. Technically, this can be described as breaking first normal form. It's a repeating group. But in practice, you may find it more convenient to just allow an and 2 column or perhaps a HomePhone and MobilePhone column rather than splitting everything out into multiple tables and having to follow relationships every single time you read or write this data. This will be referred to as a denormalization decision. You're consciously making the choice that something could be normalized out into another table. You could follow the official rules. But for convenience and/or for performance, you're not going to.

61 Denormalization Normalizing a table like this, thinking that I've immediately spotted a non-key field dependency, that would actually be taking it too far and making things more inconvenient. And the question is you really want to understand your data before you can make all these choices whether to normalize or de-normalize. And you might de-normalize to make things a bit more efficient, but do it knowingly instead of accidentally.

62 Denormalization These really the three steps that we would go through, first normal form, second normal form, and third normal form. First being about having no repeating values and no repeating groups, second normal form, no values based on just part of say half of a composite key, and third normal form, none of your non-key values should be based on or determined from another non-key value. Taking your database design through these three central criteria will vastly improve the quality of your data.

63 Denormalization one example that can seem like a normalization and/or de-normalization issue but really isn't any table that's full of address information. This situation can be a little deceptive. If I look at a table like this, and I can see I've got Zip code being stored as the last column here. Theoretically, I could figure out what the City, and the State are just from the Zip Code, if I separated them out into their own table. So technically, I have non-key fields, City and State that are dependent on another non-key field, Zip, that could be figured out from Zip alone. However, this kind of case is not the full story because while it might be true 99% of the time that a Zip code maps to a particular City or Town, there are some cases where multiple towns or cities are allowed in the same zip code, some Zip codes even cross multiple states.

64 ICE 05: More World Database Queries 64

Instructor: Craig Duckett. Lecture 04: Thursday, April 5, Relationships

Instructor: Craig Duckett. Lecture 04: Thursday, April 5, Relationships Instructor: Craig Duckett Lecture 04: Thursday, April 5, 2018 Relationships 1 Assignment 1 is due NEXT LECTURE 5, Tuesday, April 10 th in StudentTracker by MIDNIGHT MID-TERM EXAM is LECTURE 10, Tuesday,

More information

Instructor: Craig Duckett. Lecture 03: Tuesday, April 3, 2018 SQL Sorting, Aggregates and Joining Tables

Instructor: Craig Duckett. Lecture 03: Tuesday, April 3, 2018 SQL Sorting, Aggregates and Joining Tables Instructor: Craig Duckett Lecture 03: Tuesday, April 3, 2018 SQL Sorting, Aggregates and Joining Tables 1 Assignment 1 is due LECTURE 5, Tuesday, April 10 th, 2018 in StudentTracker by MIDNIGHT MID-TERM

More information

Instructor: Craig Duckett. Lecture 07: Tuesday, April 17 th, 2018 Conflicts and Isolation, MySQL Workbench

Instructor: Craig Duckett. Lecture 07: Tuesday, April 17 th, 2018 Conflicts and Isolation, MySQL Workbench Instructor: Craig Duckett Lecture 07: Tuesday, April 17 th, 2018 Conflicts and Isolation, MySQL Workbench 1 MID-TERM EXAM is LECTURE 10, Tuesday, May 1st Assignment 2 is due LECTURE 12, Tuesday, May 8

More information

Instructor: Craig Duckett. Lecture 02: Thursday, March 29 th, 2018 SQL Basics and SELECT, FROM, WHERE

Instructor: Craig Duckett. Lecture 02: Thursday, March 29 th, 2018 SQL Basics and SELECT, FROM, WHERE Instructor: Craig Duckett Lecture 02: Thursday, March 29 th, 2018 SQL Basics and SELECT, FROM, WHERE 1 Assignment 1 is due LECTURE 5, Tuesday, April 10 th, 2018 in StudentTracker by MIDNIGHT MID-TERM EXAM

More information

MITOCW ocw f99-lec07_300k

MITOCW ocw f99-lec07_300k MITOCW ocw-18.06-f99-lec07_300k OK, here's linear algebra lecture seven. I've been talking about vector spaces and specially the null space of a matrix and the column space of a matrix. What's in those

More information

How to Improve Your Campaign Conversion Rates

How to Improve Your  Campaign Conversion Rates How to Improve Your Email Campaign Conversion Rates Chris Williams Author of 7 Figure Business Models How to Exponentially Increase Conversion Rates I'm going to teach you my system for optimizing an email

More information

It Might Be Valid, But It's Still Wrong Paul Maskens and Andy Kramek

It Might Be Valid, But It's Still Wrong Paul Maskens and Andy Kramek Seite 1 von 5 Issue Date: FoxTalk July 2000 It Might Be Valid, But It's Still Wrong Paul Maskens and Andy Kramek This month, Paul Maskens and Andy Kramek discuss the problems of validating data entry.

More information

MITOCW watch?v=rvrkt-jxvko

MITOCW watch?v=rvrkt-jxvko MITOCW watch?v=rvrkt-jxvko The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To

More information

MITOCW ocw f99-lec12_300k

MITOCW ocw f99-lec12_300k MITOCW ocw-18.06-f99-lec12_300k This is lecture twelve. OK. We've reached twelve lectures. And this one is more than the others about applications of linear algebra. And I'll confess. When I'm giving you

More information

Skill 1: Multiplying Polynomials

Skill 1: Multiplying Polynomials CS103 Spring 2018 Mathematical Prerequisites Although CS103 is primarily a math class, this course does not require any higher math as a prerequisite. The most advanced level of mathematics you'll need

More information

Introduction to Databases and SQL

Introduction to Databases and SQL Introduction to Databases and SQL Files vs Databases In the last chapter you learned how your PHP scripts can use external files to store and retrieve data. Although files do a great job in many circumstances,

More information

PROFESSOR: Last time, we took a look at an explicit control evaluator for Lisp, and that bridged the gap between

PROFESSOR: Last time, we took a look at an explicit control evaluator for Lisp, and that bridged the gap between MITOCW Lecture 10A [MUSIC PLAYING] PROFESSOR: Last time, we took a look at an explicit control evaluator for Lisp, and that bridged the gap between all these high-level languages like Lisp and the query

More information

Instructor: Craig Duckett. Lecture 11: Thursday, May 3 th, Set Operations, Subqueries, Views

Instructor: Craig Duckett. Lecture 11: Thursday, May 3 th, Set Operations, Subqueries, Views Instructor: Craig Duckett Lecture 11: Thursday, May 3 th, 2018 Set Operations, Subqueries, Views 1 MID-TERM EXAM GRADED! Assignment 2 is due LECTURE 12, NEXT Tuesday, May 8 th in StudentTracker by MIDNIGHT

More information

Formal Methods of Software Design, Eric Hehner, segment 1 page 1 out of 5

Formal Methods of Software Design, Eric Hehner, segment 1 page 1 out of 5 Formal Methods of Software Design, Eric Hehner, segment 1 page 1 out of 5 [talking head] Formal Methods of Software Engineering means the use of mathematics as an aid to writing programs. Before we can

More information

In our first lecture on sets and set theory, we introduced a bunch of new symbols and terminology.

In our first lecture on sets and set theory, we introduced a bunch of new symbols and terminology. Guide to and Hi everybody! In our first lecture on sets and set theory, we introduced a bunch of new symbols and terminology. This guide focuses on two of those symbols: and. These symbols represent concepts

More information

6.001 Notes: Section 8.1

6.001 Notes: Section 8.1 6.001 Notes: Section 8.1 Slide 8.1.1 In this lecture we are going to introduce a new data type, specifically to deal with symbols. This may sound a bit odd, but if you step back, you may realize that everything

More information

Formal Methods of Software Design, Eric Hehner, segment 24 page 1 out of 5

Formal Methods of Software Design, Eric Hehner, segment 24 page 1 out of 5 Formal Methods of Software Design, Eric Hehner, segment 24 page 1 out of 5 [talking head] This lecture we study theory design and implementation. Programmers have two roles to play here. In one role, they

More information

MITOCW watch?v=yarwp7tntl4

MITOCW watch?v=yarwp7tntl4 MITOCW watch?v=yarwp7tntl4 The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality, educational resources for free.

More information

MITOCW watch?v=0jljzrnhwoi

MITOCW watch?v=0jljzrnhwoi MITOCW watch?v=0jljzrnhwoi The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To

More information

Designing a Database -- Understanding Relational Design

Designing a Database -- Understanding Relational Design Designing a Database -- Understanding Relational Design Contents Overview The Database Design Process Steps in Designing a Database Common Design Problems Determining the Purpose Determining the Tables

More information

MITOCW watch?v=w_-sx4vr53m

MITOCW watch?v=w_-sx4vr53m MITOCW watch?v=w_-sx4vr53m The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high-quality educational resources for free. To

More information

The Stack, Free Store, and Global Namespace

The Stack, Free Store, and Global Namespace Pointers This tutorial is my attempt at clarifying pointers for anyone still confused about them. Pointers are notoriously hard to grasp, so I thought I'd take a shot at explaining them. The more information

More information

Hello, and welcome to another episode of. Getting the Most Out of IBM U2. This is Kenny Brunel, and

Hello, and welcome to another episode of. Getting the Most Out of IBM U2. This is Kenny Brunel, and Hello, and welcome to another episode of Getting the Most Out of IBM U2. This is Kenny Brunel, and I'm your host for today's episode which introduces wintegrate version 6.1. First of all, I've got a guest

More information

Instructor: Craig Duckett. Lecture 14: Tuesday, May 15 th, 2018 Stored Procedures (SQL Server) and MySQL

Instructor: Craig Duckett. Lecture 14: Tuesday, May 15 th, 2018 Stored Procedures (SQL Server) and MySQL Instructor: Craig Duckett Lecture 14: Tuesday, May 15 th, 2018 Stored Procedures (SQL Server) and MySQL 1 Assignment 3 is due LECTURE 20, Tuesday, June 5 th Database Presentation is due LECTURE 20, Tuesday,

More information

P1_L3 Operating Systems Security Page 1

P1_L3 Operating Systems Security Page 1 P1_L3 Operating Systems Security Page 1 that is done by the operating system. systems. The operating system plays a really critical role in protecting resources in a computer system. Resources such as

More information

Post Experiment Interview Questions

Post Experiment Interview Questions Post Experiment Interview Questions Questions about the Maximum Problem 1. What is this problem statement asking? 2. What is meant by positive integers? 3. What does it mean by the user entering valid

More information

MITOCW watch?v=flgjisf3l78

MITOCW watch?v=flgjisf3l78 MITOCW watch?v=flgjisf3l78 The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high-quality educational resources for free. To

More information

Week 5: Background. A few observations on learning new programming languages. What's wrong with this (actual) protest from 1966?

Week 5: Background. A few observations on learning new programming languages. What's wrong with this (actual) protest from 1966? Week 5: Background A few observations on learning new programming languages What's wrong with this (actual) protest from 1966? Programmer: "Switching to PL/I as our organization's standard programming

More information

MITOCW ocw apr k

MITOCW ocw apr k MITOCW ocw-6.033-32123-06apr2005-220k Good afternoon. So we're going to continue our discussion about atomicity and how to achieve atomicity. And today the focus is going to be on implementing this idea

More information

SQL - Tables. SQL - Create a SQL Table. SQL Create Table Query:

SQL - Tables. SQL - Create a SQL Table. SQL Create Table Query: SQL - Tables Data is stored inside SQL tables which are contained within SQL databases. A single database can house hundreds of tables, each playing its own unique role in th+e database schema. While database

More information

Brief History of SQL. Relational Database Management System. Popular Databases

Brief History of SQL. Relational Database Management System. Popular Databases Brief History of SQL In 1970, Dr. E.F. Codd published "A Relational Model of Data for Large Shared Data Banks," an article that outlined a model for storing and manipulating data using tables. Shortly

More information

How To Make 3-50 Times The Profits From Your Traffic

How To Make 3-50 Times The Profits From Your Traffic 1 How To Make 3-50 Times The Profits From Your Traffic by Chris Munch of Munchweb.com Copyright Munchweb.com. All Right Reserved. This work cannot be copied, re-published, or re-distributed. No re-sell

More information

PROFESSOR: Well, yesterday we learned a bit about symbolic manipulation, and we wrote a rather stylized

PROFESSOR: Well, yesterday we learned a bit about symbolic manipulation, and we wrote a rather stylized MITOCW Lecture 4A PROFESSOR: Well, yesterday we learned a bit about symbolic manipulation, and we wrote a rather stylized program to implement a pile of calculus rule from the calculus book. Here on the

More information

I'm Andy Glover and this is the Java Technical Series of. the developerworks podcasts. My guest is Brian Jakovich. He is the

I'm Andy Glover and this is the Java Technical Series of. the developerworks podcasts. My guest is Brian Jakovich. He is the I'm Andy Glover and this is the Java Technical Series of the developerworks podcasts. My guest is Brian Jakovich. He is the director of Elastic Operations for Stelligent. He and I are going to talk about

More information

Linked Lists. What is a Linked List?

Linked Lists. What is a Linked List? Linked Lists Along with arrays, linked lists form the basis for pretty much every other data stucture out there. This makes learning and understand linked lists very important. They are also usually the

More information

So on the survey, someone mentioned they wanted to work on heaps, and someone else mentioned they wanted to work on balanced binary search trees.

So on the survey, someone mentioned they wanted to work on heaps, and someone else mentioned they wanted to work on balanced binary search trees. So on the survey, someone mentioned they wanted to work on heaps, and someone else mentioned they wanted to work on balanced binary search trees. According to the 161 schedule, heaps were last week, hashing

More information

MITOCW watch?v=kz7jjltq9r4

MITOCW watch?v=kz7jjltq9r4 MITOCW watch?v=kz7jjltq9r4 PROFESSOR: We're going to look at the most fundamental of all mathematical data types, namely sets, and let's begin with the definitions. So informally, a set is a collection

More information

Note: Please use the actual date you accessed this material in your citation.

Note: Please use the actual date you accessed this material in your citation. MIT OpenCourseWare http://ocw.mit.edu 18.06 Linear Algebra, Spring 2005 Please use the following citation format: Gilbert Strang, 18.06 Linear Algebra, Spring 2005. (Massachusetts Institute of Technology:

More information

In today s video I'm going show you how you can set up your own online business using marketing and affiliate marketing.

In today s video I'm going show you how you can set up your own online business using  marketing and affiliate marketing. Hey guys, Diggy here with a summary of part two of the four part free video series. If you haven't watched the first video yet, please do so (https://sixfigureinc.com/intro), before continuing with this

More information

Android Programming Family Fun Day using AppInventor

Android Programming Family Fun Day using AppInventor Android Programming Family Fun Day using AppInventor Table of Contents A step-by-step guide to making a simple app...2 Getting your app running on the emulator...9 Getting your app onto your phone or tablet...10

More information

CSE143 Notes for Monday, 4/25/11

CSE143 Notes for Monday, 4/25/11 CSE143 Notes for Monday, 4/25/11 I began a new topic: recursion. We have seen how to write code using loops, which a technique called iteration. Recursion an alternative to iteration that equally powerful.

More information

MITOCW MIT6_172_F10_lec18_300k-mp4

MITOCW MIT6_172_F10_lec18_300k-mp4 MITOCW MIT6_172_F10_lec18_300k-mp4 The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for

More information

MITOCW watch?v=se4p7ivcune

MITOCW watch?v=se4p7ivcune MITOCW watch?v=se4p7ivcune The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To

More information

Troubleshooting Maple Worksheets: Common Problems

Troubleshooting Maple Worksheets: Common Problems Troubleshooting Maple Worksheets: Common Problems So you've seen plenty of worksheets that work just fine, but that doesn't always help you much when your worksheet isn't doing what you want it to. This

More information

What's the Slope of a Line?

What's the Slope of a Line? What's the Slope of a Line? These lines look pretty different, don't they? Lines are used to keep track of lots of info -- like how much money a company makes. Just off the top of your head, which of the

More information

Well, Hal just told us how you build robust systems. The key idea was-- I'm sure that many of

Well, Hal just told us how you build robust systems. The key idea was-- I'm sure that many of MITOCW Lecture 3B [MUSIC PLAYING] Well, Hal just told us how you build robust systems. The key idea was-- I'm sure that many of you don't really assimilate that yet-- but the key idea is that in order

More information

PROFESSOR: Well, now that we've given you some power to make independent local state and to model objects,

PROFESSOR: Well, now that we've given you some power to make independent local state and to model objects, MITOCW Lecture 5B PROFESSOR: Well, now that we've given you some power to make independent local state and to model objects, I thought we'd do a bit of programming of a very complicated kind, just to illustrate

More information

6.830 Lecture PS1 Due Next Time (Tuesday!) Lab 1 Out end of week start early!

6.830 Lecture PS1 Due Next Time (Tuesday!) Lab 1 Out end of week start early! 6.830 Lecture 3 9.13.2017 PS1 Due Next Time (Tuesday!) Lab 1 Out end of week start early! Relational Model Continued, and Schema Design and Normalization Animals(name,age,species,cageno,keptby,feedtime)

More information

PROFESSOR: So far in this course we've been talking a lot about data abstraction. And remember the idea is that

PROFESSOR: So far in this course we've been talking a lot about data abstraction. And remember the idea is that MITOCW Lecture 4B [MUSIC-- "JESU, JOY OF MAN'S DESIRING" BY JOHANN SEBASTIAN BACH] PROFESSOR: So far in this course we've been talking a lot about data abstraction. And remember the idea is that we build

More information

BEGINNER PHP Table of Contents

BEGINNER PHP Table of Contents Table of Contents 4 5 6 7 8 9 0 Introduction Getting Setup Your first PHP webpage Working with text Talking to the user Comparison & If statements If & Else Cleaning up the game Remembering values Finishing

More information

Blitz2D Newbies: Definitive Guide to Types by MutteringGoblin

Blitz2D Newbies: Definitive Guide to Types by MutteringGoblin Blitz2D Newbies: Definitive Guide to Types by MutteringGoblin Types are probably the hardest thing to understand about Blitz Basic. If you're using types for the first time, you've probably got an uneasy

More information

Exam code: Exam name: Database Fundamentals. Version 16.0

Exam code: Exam name: Database Fundamentals. Version 16.0 98-364 Number: 98-364 Passing Score: 800 Time Limit: 120 min File Version: 16.0 Exam code: 98-364 Exam name: Database Fundamentals Version 16.0 98-364 QUESTION 1 You have a table that contains the following

More information

Azon Master Class. By Ryan Stevenson Guidebook #5 WordPress Usage

Azon Master Class. By Ryan Stevenson   Guidebook #5 WordPress Usage Azon Master Class By Ryan Stevenson https://ryanstevensonplugins.com/ Guidebook #5 WordPress Usage Table of Contents 1. Widget Setup & Usage 2. WordPress Menu System 3. Categories, Posts & Tags 4. WordPress

More information

MITOCW watch?v=zm5mw5nkzjg

MITOCW watch?v=zm5mw5nkzjg MITOCW watch?v=zm5mw5nkzjg The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To

More information

Database Management System Prof. D. Janakiram Department of Computer Science & Engineering Indian Institute of Technology, Madras Lecture No.

Database Management System Prof. D. Janakiram Department of Computer Science & Engineering Indian Institute of Technology, Madras Lecture No. Database Management System Prof. D. Janakiram Department of Computer Science & Engineering Indian Institute of Technology, Madras Lecture No. # 20 Concurrency Control Part -1 Foundations for concurrency

More information

Azon Master Class. By Ryan Stevenson Guidebook #11 Squidoo Marketing

Azon Master Class. By Ryan Stevenson   Guidebook #11 Squidoo Marketing Azon Master Class By Ryan Stevenson https://ryanstevensonplugins.com/ Guidebook #11 Squidoo Marketing Table of Contents 1. Getting Started With Squidoo 2. Lens Research & Targeting 3. Lens Creation Tutorial

More information

Lesson 3 Transcript: Part 1 of 2 - Tools & Scripting

Lesson 3 Transcript: Part 1 of 2 - Tools & Scripting Lesson 3 Transcript: Part 1 of 2 - Tools & Scripting Slide 1: Cover Welcome to lesson 3 of the db2 on Campus lecture series. Today we're going to talk about tools and scripting, and this is part 1 of 2

More information

Fortunately, you only need to know 10% of what's in the main page to get 90% of the benefit. This page will show you that 10%.

Fortunately, you only need to know 10% of what's in the main page to get 90% of the benefit. This page will show you that 10%. NAME DESCRIPTION perlreftut - Mark's very short tutorial about references One of the most important new features in Perl 5 was the capability to manage complicated data structures like multidimensional

More information

Database Management System Dr. S. Srinath Department of Computer Science & Engineering Indian Institute of Technology, Madras Lecture No.

Database Management System Dr. S. Srinath Department of Computer Science & Engineering Indian Institute of Technology, Madras Lecture No. Database Management System Dr. S. Srinath Department of Computer Science & Engineering Indian Institute of Technology, Madras Lecture No. # 3 Relational Model Hello everyone, we have been looking into

More information

Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 14

Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 14 Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 14 Scan Converting Lines, Circles and Ellipses Hello everybody, welcome again

More information

MITOCW watch?v=9h6muyzjms0

MITOCW watch?v=9h6muyzjms0 MITOCW watch?v=9h6muyzjms0 The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To

More information

Database Fundamentals

Database Fundamentals Database Fundamentals presented to NYPHP May 22, 2007 by Kenneth Downs Secure Data Software, Inc. ken@secdat.com www.secdat.com www.andromeda project.org Pre Relational In the bad old days, every program

More information

The following content is provided under a Creative Commons license. Your support

The following content is provided under a Creative Commons license. Your support MITOCW Lecture 9 The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high-quality educational resources for free. To make a donation

More information

Lesson 4: Who Goes There?

Lesson 4: Who Goes There? Lesson 4: Who Goes There? In this lesson we will write a program that asks for your name and a password, and prints a secret message if you give the right password. While doing this we will learn: 1. What

More information

Hi everyone. Starting this week I'm going to make a couple tweaks to how section is run. The first thing is that I'm going to go over all the slides

Hi everyone. Starting this week I'm going to make a couple tweaks to how section is run. The first thing is that I'm going to go over all the slides Hi everyone. Starting this week I'm going to make a couple tweaks to how section is run. The first thing is that I'm going to go over all the slides for both problems first, and let you guys code them

More information

CS103 Spring 2018 Mathematical Vocabulary

CS103 Spring 2018 Mathematical Vocabulary CS103 Spring 2018 Mathematical Vocabulary You keep using that word. I do not think it means what you think it means. - Inigo Montoya, from The Princess Bride Consider the humble while loop in most programming

More information

Intro. Speed V Growth

Intro. Speed V Growth Intro Good code is two things. It's elegant, and it's fast. In other words, we got a need for speed. We want to find out what's fast, what's slow, and what we can optimize. First, we'll take a tour of

More information

Close Your File Template

Close Your File Template In every sale there is always a scenario where I can t get someone to respond. No matter what I do. I can t get an answer from them. When people stop responding I use the Permission To. This is one of

More information

UAccess ANALYTICS. Fundamentals of Reporting. updated v.1.00

UAccess ANALYTICS. Fundamentals of Reporting. updated v.1.00 UAccess ANALYTICS Arizona Board of Regents, 2010 THE UNIVERSITY OF ARIZONA updated 07.01.2010 v.1.00 For information and permission to use our PDF manuals, please contact uitsworkshopteam@listserv.com

More information

MITOCW watch?v=4dj1oguwtem

MITOCW watch?v=4dj1oguwtem MITOCW watch?v=4dj1oguwtem PROFESSOR: So it's time to examine uncountable sets. And that's what we're going to do in this segment. So Cantor's question was, are all sets the same size? And he gives a definitive

More information

Azon Master Class. By Ryan Stevenson Guidebook #7 Site Construction 2/3

Azon Master Class. By Ryan Stevenson   Guidebook #7 Site Construction 2/3 Azon Master Class By Ryan Stevenson https://ryanstevensonplugins.com/ Guidebook #7 Site Construction 2/3 Table of Contents 1. Creation of Site Pages 2. Category Pages Creation 3. Home Page Creation Creation

More information

Using X-Particles with Team Render

Using X-Particles with Team Render Using X-Particles with Team Render Some users have experienced difficulty in using X-Particles with Team Render, so we have prepared this guide to using them together. Caching Using Team Render to Picture

More information

IDM 232. Scripting for Interactive Digital Media II. IDM 232: Scripting for IDM II 1

IDM 232. Scripting for Interactive Digital Media II. IDM 232: Scripting for IDM II 1 IDM 232 Scripting for Interactive Digital Media II IDM 232: Scripting for IDM II 1 PHP HTML-embedded scripting language IDM 232: Scripting for IDM II 2 Before we dive into code, it's important to understand

More information

Detecting and correcting mistakes

Detecting and correcting mistakes Chapter 6 Detecting and correcting mistakes 6.1 Errors and the law! In chapter 4 we saw that random noise will tend to reduce the amount of information transmitted or collected by making us uncertain that

More information

1 of 5 3/28/2010 8:01 AM Unit Testing Notes Home Class Info Links Lectures Newsgroup Assignmen [Jump to Writing Clear Tests, What about Private Functions?] Testing The typical approach to testing code

More information

Azon Master Class. By Ryan Stevenson Guidebook #4 WordPress Installation & Setup

Azon Master Class. By Ryan Stevenson   Guidebook #4 WordPress Installation & Setup Azon Master Class By Ryan Stevenson https://ryanstevensonplugins.com/ Guidebook #4 WordPress Installation & Setup Table of Contents 1. Add Your Domain To Your Website Hosting Account 2. Domain Name Server

More information

(Refer Slide Time: 00:51)

(Refer Slide Time: 00:51) Programming, Data Structures and Algorithms Prof. Shankar Balachandran Department of Computer Science and Engineering Indian Institute Technology, Madras Module 10 E Lecture 24 Content Example: factorial

More information

Introduction to Asymptotic Running Time Analysis CMPSC 122

Introduction to Asymptotic Running Time Analysis CMPSC 122 Introduction to Asymptotic Running Time Analysis CMPSC 122 I. Comparing Two Searching Algorithms Let's begin by considering two searching algorithms you know, both of which will have input parameters of

More information

MITOCW watch?v=penh4mv5gag

MITOCW watch?v=penh4mv5gag MITOCW watch?v=penh4mv5gag PROFESSOR: Graph coloring is the abstract version of a problem that arises from a bunch of conflict scheduling situations. So let's look at an example first and then define the

More information

GENERAL MATH FOR PASSING

GENERAL MATH FOR PASSING GENERAL MATH FOR PASSING Your math and problem solving skills will be a key element in achieving a passing score on your exam. It will be necessary to brush up on your math and problem solving skills.

More information

Inside Relational Databases with Examples in Access

Inside Relational Databases with Examples in Access Inside Relational Databases with Examples in Access Inside Relational Databases with Examples in Access Mark Whitehorn and Bill Marklyn 123 Mark Whitehorn Applied Computing Division, University of Dundee,

More information

Memory Addressing, Binary, and Hexadecimal Review

Memory Addressing, Binary, and Hexadecimal Review C++ By A EXAMPLE Memory Addressing, Binary, and Hexadecimal Review You do not have to understand the concepts in this appendix to become well-versed in C++. You can master C++, however, only if you spend

More information

The following content is provided under a Creative Commons license. Your support

The following content is provided under a Creative Commons license. Your support MITOCW Recitation 1 The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high-quality educational resources for free. To make

More information

Guides for Installing MS SQL Server and Creating Your First Database. Please see more guidelines on installing procedure on the class webpage

Guides for Installing MS SQL Server and Creating Your First Database. Please see more guidelines on installing procedure on the class webpage Guides for Installing MS SQL Server and Creating Your First Database Installing process Please see more guidelines on installing procedure on the class webpage 1. Make sure that you install a server with

More information

CONTENTS: What Is Programming? How a Computer Works Programming Languages Java Basics. COMP-202 Unit 1: Introduction

CONTENTS: What Is Programming? How a Computer Works Programming Languages Java Basics. COMP-202 Unit 1: Introduction CONTENTS: What Is Programming? How a Computer Works Programming Languages Java Basics COMP-202 Unit 1: Introduction Announcements Did you miss the first lecture? Come talk to me after class. If you want

More information

The following content is provided under a Creative Commons license. Your support

The following content is provided under a Creative Commons license. Your support MITOCW Lecture 8 The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To make a donation

More information

Module 6. Campaign Layering

Module 6.  Campaign Layering Module 6 Email Campaign Layering Slide 1 Hello everyone, it is Andy Mackow and in today s training, I am going to teach you a deeper level of writing your email campaign. I and I am calling this Email

More information

Q &A on Entity Relationship Diagrams. What is the Point? 1 Q&A

Q &A on Entity Relationship Diagrams. What is the Point? 1 Q&A 1 Q&A Q &A on Entity Relationship Diagrams The objective of this lecture is to show you how to construct an Entity Relationship (ER) Diagram. We demonstrate these concepts through an example. To break

More information

Out for Shopping-Understanding Linear Data Structures English

Out for Shopping-Understanding Linear Data Structures English Out for Shopping-Understanding Linear Data Structures English [MUSIC PLAYING] [MUSIC PLAYING] TANZEELA ALI: Hi, it's Tanzeela Ali. I'm a software engineer, and also a teacher at Superior University, which

More information

6.001 Notes: Section 15.1

6.001 Notes: Section 15.1 6.001 Notes: Section 15.1 Slide 15.1.1 Our goal over the next few lectures is to build an interpreter, which in a very basic sense is the ultimate in programming, since doing so will allow us to define

More information

Database Management System Prof. Partha Pratim Das Department of Computer Science & Engineering Indian Institute of Technology, Kharagpur

Database Management System Prof. Partha Pratim Das Department of Computer Science & Engineering Indian Institute of Technology, Kharagpur Database Management System Prof. Partha Pratim Das Department of Computer Science & Engineering Indian Institute of Technology, Kharagpur Lecture - 19 Relational Database Design (Contd.) Welcome to module

More information

MITOCW watch?v=sdw8_0rdzuw

MITOCW watch?v=sdw8_0rdzuw MITOCW watch?v=sdw8_0rdzuw PROFESSOR: Directed acyclic graphs are a special class of graphs that really have and warrant a theory of their own. Of course, "directed acyclic graphs" is lot of syllables,

More information

Access 2013: The Missing Manual PDF

Access 2013: The Missing Manual PDF Access 2013: The Missing Manual PDF Unlock the secrets of Access 2013 and discover how to use your data in creative ways. With this bookâ s easy step-by-step instructions, youâ ll learn how to build and

More information

DATABASES SQL INFOTEK SOLUTIONS TEAM

DATABASES SQL INFOTEK SOLUTIONS TEAM DATABASES SQL INFOTEK SOLUTIONS TEAM TRAINING@INFOTEK-SOLUTIONS.COM Databases 1. Introduction in databases 2. Relational databases (SQL databases) 3. Database management system (DBMS) 4. Database design

More information

Module 10A Lecture - 20 What is a function? Why use functions Example: power (base, n)

Module 10A Lecture - 20 What is a function? Why use functions Example: power (base, n) Programming, Data Structures and Algorithms Prof. Shankar Balachandran Department of Computer Science and Engineering Indian Institute of Technology, Madras Module 10A Lecture - 20 What is a function?

More information

A Brief Writer s Guide to Book Indexing

A Brief Writer s Guide to Book Indexing A Brief Writer s Guide to Book Indexing From Potomac Indexing, LLC I know. You (writer about to publish a non- fiction book of more than 100 pages) are so tired of looking at your text over and over, assessing

More information

Who am I? I m a python developer who has been working on OpenStack since I currently work for Aptira, who do OpenStack, SDN, and orchestration

Who am I? I m a python developer who has been working on OpenStack since I currently work for Aptira, who do OpenStack, SDN, and orchestration Who am I? I m a python developer who has been working on OpenStack since 2011. I currently work for Aptira, who do OpenStack, SDN, and orchestration consulting. I m here today to help you learn from my

More information

Ruby on Rails Welcome. Using the exercise files

Ruby on Rails Welcome. Using the exercise files Ruby on Rails Welcome Welcome to Ruby on Rails Essential Training. In this course, we're going to learn the popular open source web development framework. We will walk through each part of the framework,

More information

The following content is provided under a Creative Commons license. Your support

The following content is provided under a Creative Commons license. Your support MITOCW Recitation 4 The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To make

More information

CheckBook Pro 2 Help

CheckBook Pro 2 Help Get started with CheckBook Pro 9 Introduction 9 Create your Accounts document 10 Name your first Account 11 Your Starting Balance 12 Currency 13 We're not done yet! 14 AutoCompletion 15 Descriptions 16

More information