debugging one common pattern when you are developing python program to connect to an sqlite database will be to run python program and check the results using the database browser for sqlite the browser allows you to quickly check to see if your program is working properly you must be careful because sqlite takes care to keep two programs from changing the same data at the same time for exampleif you open database in the browser and make change to the database and have not yet pressed the "savebutton in the browserthe browser "locksthe database file and keeps any other program from accessing the file in particularyour python program will not be able to access the file if it is locked so solution is to make sure to either close the database browser or use the file menu to close the database in the browser before you attempt to access the database from python to avoid the problem of your python code failing because the database is locked glossary attribute one of the values within tuple more commonly called "columnor "fieldconstraint when we tell the database to enforce rule on field or row in table common constraint is to insist that there can be no duplicate values in particular field ( all the values must be uniquecursor cursor allows you to execute sql commands in database and retrieve data from the database cursor is similar to socket or file handle for network connections and filesrespectively database browser piece of software that allows you to directly connect to database and manipulate the database directly without writing program foreign key numeric key that points to the primary key of row in another table foreign keys establish relationships between rows stored in different tables index additional data that the database software maintains as rows and inserts into table to make lookups very fast logical key key that the "outside worlduses to look up particular row for example in table of user accountsa person' email address might be good candidate as the logical key for the user' data normalization designing data model so that no data is replicated we store each item of data at one place in the database and reference it elsewhere using foreign key primary key numeric key assigned to each row that is used to refer to one row in table from another table often the database is configured to automatically assign primary keys as rows are inserted relation an area within database that contains tuples and attributes more typically called "tabletuple single entry in database table that is set of attributes more typically called "row